class Solution {
//역순으로 접근
public int romanToInt(String s) {
char c;
int num = 0;
for(int i = s.length()-1; i >= 0; i--) {
c = s.charAt(i);
if(c == 'I')
num += (num >= 5 || num >= 10) ? -1 : 1;
else if(c == 'V')
num += 5;
else if(c == 'X')
num += (num >= 50 || num >= 100) ? -10 : 10;
else if(c == 'L')
num += 50;
else if(c == 'C')
num += (num >= 500 || num >= 1000) ? -100 : 100;
else if(c == 'D')
num += 500;
else if(c == 'M')
num += (num >= 5000 || num >= 10000) ? -1000 : 1000;
}
return num;
}
}
이건 솔직히 어떻게 풀어야 할 지 감이 오지 않아서
여러 블로그 및 티스토리를 참고했다.
시간이 지난 뒤에 스스로 다시 풀어봐야할 문제 중 하나.
코드를 짠다는 것은 어떻게 보면 되게 간단한 일이지만, 머릿 속에 있는 그 풀이 방식을 어떻게 간단하고 명료하고 효과적으로 짤 수 있는 지는 어렵고 복잡한 일같다.