LeetCode 13. Roman to Integer

남경민·2023년 4월 30일
0

LeetCode-Easy

목록 보기
1/3


class Solution 
{
public:
    int charToInt(char c)
    {
        int ret = 0;
        switch(c)
        {
            case 'I':
            ret = 1;
            break;
            case 'V':
            ret =5;
            break;
            case 'X':
            ret = 10;
            break;
            case 'L':
            ret = 50;
            break;
            case 'C':
            ret = 100;
            break;
            case 'D':
            ret = 500;
            break;
            case 'M':
            ret = 1000;
            break;
        }

        return ret;
    }

    int romanToInt(string s) 
    {
        int num = 0;
        for(int i = 0; i<s.length(); i++)
        {
            char c = s[i];
            int n = charToInt(c);
            if(i!= s.length() - 1)
            {
                char nextC = s[i+1];
                if(c == 'I' && (nextC == 'V' || nextC == 'X') || 
                c == 'X' &&(nextC == 'L' || nextC == 'C') ||
                c == 'C' &&(nextC == 'D' || nextC == 'M') )
                {
                    n = charToInt(nextC) - charToInt(c);
                    i++;
                }
            }
            num += n;
        }

        return num;
    }
};

백준에서 LeetCode로 넘어와서 푼 첫 문제.
LeetCode는 백준과 다르게 class Solution 내부에 함수가 이미 정의되어 있고(이 문제에서는 int romanToInt) 나는 함수의 내부 Logic을 채워 넣기만 하면 된다. 이건 꽤 마음에 듬. 귀찮게 입력받는 로직을 따로 만들지 않아도 된다. 굿굿

0개의 댓글