LeetCode) 13. Roman to Integer

·2021년 11월 10일
0

Leet_code(Easy)

목록 보기
4/20


Language: java

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;
    }
}

이건 솔직히 어떻게 풀어야 할 지 감이 오지 않아서
여러 블로그 및 티스토리를 참고했다.
시간이 지난 뒤에 스스로 다시 풀어봐야할 문제 중 하나.

코드를 짠다는 것은 어떻게 보면 되게 간단한 일이지만, 머릿 속에 있는 그 풀이 방식을 어떻게 간단하고 명료하고 효과적으로 짤 수 있는 지는 어렵고 복잡한 일같다.

profile
HAPPY !

0개의 댓글