- 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.
반응형
'자료구조&알고리즘 > 알고리즘-문제풀이' 카테고리의 다른 글
[BAEKJOON] 2577-숫자의 개수 (0) | 2021.06.30 |
---|---|
[BAEKJOON] 2884-알람시계 (0) | 2021.06.30 |
Leetcode-easy-9. Palindrome Number (0) | 2020.07.14 |
Leetcode-easy-7. Reverse Integer (0) | 2020.07.14 |
Leetcode-easy-1.Two Sum (0) | 2020.07.14 |