Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- leetcode
- 프로그래머스
- [파이썬 실습] 중급 문제
- 자바스크립트 날씨
- [파이썬 실습] 기초 문제
- 자바스크립트 sort()
- 자바스크립트 reduce()
- [AI 5기] 연습 문제집
- 리트코드
- 자바스크립트
- 엘리스 ai 트랙
- 날씨 웹 만들기
- 삼항연산자
- 자바스크립트 split()
- RN 프로젝트
- 프론트개발
- 코딩부트캠프
- JavaScript
- 개발공부
- 프론트개발공부
- 엘리스
- 코드스테이츠
- 부트캠프
- 개발일기
- reactnativecli
- HTML
- 엘리스 AI 트랙 5기
- 간단한 날씨 웹 만들기
- [파이썬 실습] 심화 문제
- 자바스크립트 날씨 웹 만들기
Archives
- Today
- Total
개발조각
[리트코드] 13. Roman to Integer 본문
728x90
반응형
안녕하세요. 개발조각입니다.😊
이번에는 12번문제의 반대 버전이에요. 확실히 easy이다 보니 쉽더라고요.
https://leetcode.com/problems/roman-to-integer/
Roman to Integer - LeetCode
Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.
leetcode.com
해결방안
var romanToInt = function(s) {
let roma = {'I':1, 'V':5, 'X':10, 'L':50, 'C':100, 'D':500, 'M':1000};
let num = 0;
for(let i=0; i<s.length; i++){
let current = roma[s[i]];
let next = roma[s[i+1]];
if(current < next){
num -= current;
}else num += current;
}
return num;
};
이문제의 해결방안에 대해 설명하자면
Input: s = "MCMXCIV"
Output: 1994
Explanation: M = 1000, CM = 900, XC = 90 and IV = 4.
이러한 예제가 있으면
'MCMXCIV'를 각 문자단위로 숫자로 바꾸면
'1000, 100, 1000, 10, 100, 1, 5' 이렇게 됩니다.
이걸 보시면 규칙이 보이실 거예요.
1000 + (1000-100) + (100-10) + (5-1) = 1994
이렇게 현재 숫자 < 다음 숫자 이러면 다음 숫자-현재 숫자를 하면 됩니다.
이걸 좀 더 간단하게 하면
- 현재 숫자 < 다음 숫자 → -현재 숫자
- 현재 숫자 < 다음 숫자 아니면 → +현재 숫자
이렇게 해주면 됩니다.
728x90
반응형
'알고리즘🅰 > 리트코드' 카테고리의 다른 글
[리트코드] 15. 3Sum (0) | 2022.09.18 |
---|---|
[리트코드] 14. Longest Common Prefix (0) | 2022.09.15 |
[리트코드] 12. Integer to Roman (0) | 2022.09.13 |
[리트코드] 10. Regular Expression Matching (0) | 2022.09.13 |
[리트코드] 8. String to Integer (atoi) (0) | 2022.09.12 |
Comments