1. 문제
https://programmers.co.kr/learn/courses/30/lessons/81301
2. 풀이
2.1. 나의 풀이
index i를 하나씩 증가시키면서 해당 글자가 dictionary에 있는지 확인하고, 있으면 해당 문자열에 속하는 숫자를 집어 넣습니다.
def solution(s):
dict = {'zero': 0, 'one': 1, 'two': 2, 'three': 3, 'four': 4, 'five': 5, 'six': 6, 'seven': 7, 'eight': 8, 'nine': 9}
answer = ''
i = 0
while i < len(s):
if s[i].isdigit():
answer += s[i]
i = i + 1
continue
sub = 3
while i + sub <= len(s):
if s[i:i + sub] in dict:
answer += str(dict[s[i:i + sub]])
i = i + sub
else:
sub += 1
return int(answer)
2.2. 숏코딩
replace 함수를 사용하여 손쉽게 문제를 해결할 수 있습니다.
num_dic = {"zero":"0", "one":"1", "two":"2", "three":"3", "four":"4", "five":"5", "six":"6", "seven":"7", "eight":"8", "nine":"9"}
def solution(s):
answer = s
for key, value in num_dic.items():
answer = answer.replace(key, value)
return int(answer)