.digit() 함수를 알고 있어서 그런지 더 수월하게 풀 수 있었던 것 같다. s에서 숫자인 문자는 단순히 answer에 이어 붙이기만 했다. 숫자가 아니라면 s 문자열에서 단어-숫자 맵의 키값에 해당하는 단어가 되도록 하는 인덱싱 범위를 찾은 후, 인덱싱 범위로 인덱싱을 해 answer에 이어 붙이도록 했다.
def solution(s):
answer = ''
num_map = {'one':'1', 'two':'2', 'three':'3', 'four':'4', 'five':'5',
'six':'6', 'seven':'7', 'eight':'8', 'nine':'9', 'zero':'0'}
for i in range(len(s)):
if s[i].isdigit():
answer += s[i]
else:
for j in range(i+1, len(s)+1):
if s[i:j] in num_map.keys():
answer += num_map[s[i:j]]
i = j
break
return int(answer)