반응형
코딩하기 전 생각하기
/*
문자열을 순회하면서 해당 숫자를 더해준다.
4*와 9* 숫자에 대한 예외처리를 해준다.
*/
코드
class Solution {
public:
int romanToInt(string s) {
int n = 0;
for ( int i = 0; i < s.length(); i++ ) {
if ( s[i] == 'M' ) {
if ( i > 0 && s[i-1] == 'C') n += 800;
else n += 1000;
}
if ( s[i] == 'D' ) {
if ( i > 0 && s[i-1] == 'C') n += 300;
else n += 500;
}
if ( s[i] == 'C' ) {
if ( i > 0 && s[i-1] == 'X') n += 80;
else n += 100;
}
if ( s[i] == 'L' ) {
if ( i > 0 && s[i-1] == 'X') n += 30;
else n += 50;
}
if ( s[i] == 'X' ) {
if ( i > 0 && s[i-1] == 'I') n += 8;
else n += 10;
}
if ( s[i] == 'V' ) {
if ( i > 0 && s[i-1] == 'I') n += 3;
else n += 5;
}
if ( s[i] == 'I' )
n++;
}
return n;
}
};
느낀점
고급시계에서 볼 수 있는 로마숫자!
(주의) 기록용으로 작성한 글입니다. 코드가 허접하거나 알고리즘의 효율이 낮을 수 있습니다.
댓글 환영합니다!
반응형
'Algorithm > LeetCode' 카테고리의 다른 글
[LeetCode] 338. Counting Bits (C++) (0) | 2021.08.05 |
---|---|
[LeetCode] 202. Happy Number (C++) (0) | 2021.08.01 |
[LeetCode] 1. Two Sum (C++) (0) | 2021.08.01 |
[LeetCode] 26. Remove Duplicates from Sorted Array (C++) (0) | 2021.08.01 |
[LeetCode] 733. Flood Fill (C++) (0) | 2021.07.31 |
댓글