answer = ''
s = "one4seveneight"
stack = []
number = {0:'zero', 1:'one', 2:'two', 3:'three', 4:'four', 5:'five', 6:'six', 7:'seven', 8:'eight', 9:'nine'}
for i in s:
if i.isalpha():
stack += i
if "".join(stack) in number.values():
answer += number.keys["".join(stack)]
else:
answer += i
일단 변수가 많고...
알파벳 하나씩 쌓으면서 그 알파벳의 조합이 딕셔너리에 있으면 꺼내서 answer에 더하는 게 너무 불필요해서 딕셔너리에 대해 더 찾아보았더니, key와 value 바꾸는 방법이 있었다!
딕셔너리 만들고 key와 value 바꾸기
def solution(s):
number = {0:'zero', 1:'one', 2:'two', 3:'three', 4:'four', 5:'five', 6:'six', 7:'seven', 8:'eight', 9:'nine'}
for item in number.items():
s = s.replace(item[1], str(item[0]))
return int(s)
item[0]은 1,2,3 과 같은 숫자라 str인 values와 replace할 수 없어서 str() 해주었다.
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)
key와 value를 지정해서 해주었다. 내 풀이와 같은 알고리즘!