첫번째 해답 :
def solution(s):
answer = ''
print(len(s))
i = 0
while i < len(s) :
if s[i].isdigit() :
answer += s[i]
i += 1
else :
if s[i:i+2] == 'ze' : answer += '0'; i += 4
if s[i:i+2] == 'on' : answer += '1'; i += 3
if s[i:i+2] == 'tw' : answer += '2'; i += 3
if s[i:i+2] == 'th' : answer += '3'; i += 5
if s[i:i+2] == 'fo' : answer += '4'; i += 4
if s[i:i+2] == 'fi' : answer += '5'; i += 4
if s[i:i+2] == 'si' : answer += '6'; i += 3
if s[i:i+2] == 'se' : answer += '7'; i += 5
if s[i:i+2] == 'ei' : answer += '8'; i += 5
if s[i:i+2] == 'ni' : answer += '9'; i += 4
return int(answer)
개선한 정답 :
def solution(s):
answer = ''
num_s = {'zero':0, 'one':1, 'two':2, 'three':3, 'four':4, 'five':5, 'six':6, 'seven':7, 'eight':8, 'nine':9}
for idx, key in enumerate(num_s) :
s = s.replace(key,str(num_s[key]))
return int(s)
배운 점 :
replace를 하면 해당 string 안에있는 특정 단어를 다른 단어로 치환할 수 있다.
dictionary 형은 json 처럼 key : value 값을 가지고 있는 자료형태이다.
enumerate는 리스트가 있는 경우 순서와 리스트의 값을 전달한다.