본문 바로가기
Algorithm things/LeetCode

[LeetCode/Easy] 13. Roman to Integer - 문제풀이

by Warehaus 2021. 11. 6.

쉬운 문제임에도 불구하고 이상한데서 디버깅을 하다가 엄청난 시간을 소비했다.

요새 정말 코드를 생각없이 짜 왔구나 라는 것을 느끼게 해 준 문제.. 

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