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 | 31 |
Tags
- Stack
- sorting
- dynamic programming
- implement
- java
- Binary Tree
- Binary Search
- Counting
- database
- SQL
- Tree
- Class
- two pointers
- 구현
- 자바
- geometry
- 파이썬
- bit manipulation
- greedy
- Math
- Method
- 코딩테스트
- hash table
- 코테
- string
- Number Theory
- Data Structure
- array
- simulation
- Matrix
Archives
- Today
- Total
코린이의 소소한 공부노트
[LeetCode/Easy] 13. Roman to Integer 본문
1. Input
1) 로마자를 담고있는 String 변수 s
2) 로마자의 숫자 표현
로마자 | 숫자 | 로마자 | 숫자 | 로마자 | 숫자 | 로마자 | 숫자 | 로마자 | 숫자 |
I | 1 | II | 2 | III | 3 | IV | 4 | V | 5 |
VI | 6 | VII | 7 | VIII | 8 | IX | 9 | X | 10 |
XX | 20 | ||||||||
XL | 40 | XC | 90 | CD | 400 | CM | 900 | ||
L | 50 | C | 100 | D | 500 | M | 1000 | ||
LX | 60 | CX | 110 | DC | 600 | MC | 1100 |
2. Output
1) s의 로마자를 10진수로 바꾼 int 값
3. Constraint
1) 1 <= s.length <= 15
2) s는 'I', 'V', 'X', 'L', 'C', 'D', 'M'로만 이루어져 있음
3) s를 숫자로 바꾸면 반드시 [1, 3999]에 속한 숫자가 됨
4. Example
Input: s = "MCMXCIV"
Output: 1994
설명: M = 1000, CM = 900, XC = 90, IV = 4.
5. Code
1) 첫 코드
int sum = 0;
for(int i=0 ; i<s.length() ; i++){
if(s.charAt(i)=='I'){
if(i==s.length()-1)
sum += 1;
else if(s.charAt(i+1)=='V' || s.charAt(i+1)=='X')
sum -= 1;
else
sum += 1;
}
else if(s.charAt(i)=='X'){
if(i==s.length()-1)
sum += 10;
else if(s.charAt(i+1)=='L' || s.charAt(i+1)=='C')
sum -= 10;
else
sum += 10;
}
else if(s.charAt(i)=='C'){
if(i==s.length()-1)
sum += 100;
else if(s.charAt(i+1)=='D' || s.charAt(i+1)=='M')
sum -= 100;
else
sum += 100;
}
else if(s.charAt(i)=='V')
sum += 5;
else if(s.charAt(i)=='L')
sum += 50;
else if(s.charAt(i)=='D')
sum += 500;
else // 'M'
sum += 1000;
}
return sum;
- 다음에 오는 문자와 함께 비교해서 계산
'코딩테스트 풀이 > JAVA' 카테고리의 다른 글
[LeetCode/Medium] 1476. Subrectangle Queries (0) | 2022.08.16 |
---|---|
[LeetCode/Easy] 28. Implement strStr() (0) | 2022.08.12 |
[LeetCode/Easy] 26. Remove Duplicates from Sorted Array (0) | 2022.08.10 |
[LeetCode/Easy] 9. Palindrome Number (0) | 2022.08.08 |
[LeetCode/Easy] 1. Two Sum (0) | 2022.08.08 |