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을 채워 넣기만 하면 된다. 이건 꽤 마음에 듬. 귀찮게 입력받는 로직을 따로 만들지 않아도 된다. 굿굿