각 문자열에 대응하는 숫자문자열을 가지는 딕셔너리를 생성.
s의 각 문자를 반복하며 숫자면 그대로 answer에 더해주고, 문자일 경우 num_s에 더한 후, 딕셔너리에 존재하는지 확인한다. 딕셔너리에 존재하는 값 이라면 해당 키의 값을 answer에 더해주고, num_s를 초기화 한다.
def solution(s):
answer = ''
num_dic = {'zero': '0', 'one': '1', 'two': '2', 'three': '3',
'four': '4', 'five': '5', 'six': '6', 'seven': '7',
'eight': '8', 'nine': '9'}
num_s = ''
for char in s:
if char.isdigit():
answer += char
else:
num_s += char
if num_s in num_dic:
answer += num_dic[num_s]
num_s = ''
return int(answer)
다른 사람의 코드를 참고했다.
풀이1과 마찬가지로 각 문자열에 대응하는 숫자문자열을 가지는 딕셔너리를 생성.
입력으로 주어진 문자열 s에 replace함수를 사용하여 딕셔너리의 key와 대응하는 문자를 value로 대체한다.
def solution(s):
num_dic = {'zero': '0', 'one': '1', 'two': '2', 'three': '3',
'four': '4', 'five': '5', 'six': '6', 'seven': '7',
'eight': '8', 'nine': '9'}
for key, val in num_dic.items():
s = s.replace(key, val)
return int(s)