본문 바로가기

자료구조&알고리즘/알고리즘-문제풀이

Leetcode-easy-13. Roman to Integer

- i와 i+1을 비교해서 앞에 있는 수가 큰 수면 앞에 수를 더하고, 뒤에 있는 수 비교

class Solution:
    def romanToInt(self, s: str) -> int:
        romanDict = {
            "I" : 1,
            "V" : 5,
            "X" : 10,
            "L" : 50,
            "C" : 100,
            "D" : 500,
            "M" : 1000
        }
        result = 0
        idx = 0
        while idx < len(s):

            if idx == len(s) - 1:
                result += romanDict[s[idx]]
                break

            if romanDict[s[idx]] >= romanDict[s[idx+1]]:
                result += romanDict[s[idx]]
                idx += 1
            else:
                temp = romanDict[s[idx+1]] - romanDict[s[idx]]
                result += temp
                idx += 2

        return result

- 결과

Runtime: 56 ms, faster than 39.64% of Python3 online submissions for Roman to Integer.

Memory Usage: 14 MB, less than 13.43% of Python3 online submissions for Roman to Integer.

반응형