쉬운 문제임에도 불구하고 이상한데서 디버깅을 하다가 엄청난 시간을 소비했다.
요새 정말 코드를 생각없이 짜 왔구나 라는 것을 느끼게 해 준 문제..
class Solution {
public:
int romanToInt(string s) {
auto len = s.length();
auto sum = 0;
for ( int i = 0; i < len; i++ ) {
auto v = 0;
if ( s[i] == 'I' ) {
if ( i + 1 < len ) {
if ( s[i+1] == 'V' )
v = 4;
else if ( s[i+1] == 'X' )
v = 9;
}
if ( v == 0 )
v = 1;
else
i++;
}
else if ( s[i] == 'V' )
v = 5;
else if ( s[i] == 'X' ) {
if ( i + 1 < len ) {
if ( s[i+1] == 'L' )
v = 40;
else if ( s[i+1] == 'C' )
v = 90;
}
if ( v == 0 )
v = 10;
else
i++;
}
else if ( s[i] == 'L' )
v = 50;
else if ( s[i] == 'C' ) {
if ( i + 1 < len ) {
if ( s[i+1] == 'D' )
v = 400;
else if ( s[i+1] == 'M' )
v = 900;
}
if ( v == 0 )
v = 100;
else
i++;
}
else if ( s[i] == 'D' )
v = 500;
else
v = 1000;
sum += v;
}
return sum;
}
};
너무다 당연한 부분인데, string 을 index로 접근을 해 놓고 문자열 비교를 string 과 하고 있었다.
아래처럼..
s[i] == "D"
그래서 계속 오류메시지가 나오는데 대체 왜?! 이러고 있었으니 말 다했지..
암튼.. 제출한 결과는 다음과 같다. 코드에서 딱히 개선해야될 게 있나 싶다.
'Algorithm things > LeetCode' 카테고리의 다른 글
[Leetcode/Easy] 9. Palindrome Number (0) | 2021.11.10 |
---|