본문 바로가기
Algorithm/LeetCode

[LeetCode] 13. Roman to Integer (C++)

by shine-jung 2021. 8. 1.
반응형

문제 링크

 

코딩하기 전 생각하기

/*
문자열을 순회하면서 해당 숫자를 더해준다.
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;
    }
};

 


 

느낀점

 

고급시계에서 볼 수 있는 로마숫자!

 

(주의) 기록용으로 작성한 글입니다. 코드가 허접하거나 알고리즘의 효율이 낮을 수 있습니다.

댓글 환영합니다!

반응형

댓글