소스 코드

numbers = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine']

num_dic = {}

for q in range(10):
    num_dic[numbers[q]] = q

def solution(s):
    answer = ''

    idx = 0

    while True:

        # 숫자일 경우
        if 48 <= ord(s[idx]) <= 57:
            answer += str(s[idx])
            idx += 1

        # 영어 단어일 경우
        else:
            temp = ''
            while True:

                # key 값이 없으면
                if num_dic.get(temp) == None:
                    temp += s[idx]
                    idx += 1

                # key 값이 존재하면
                else:
                    answer += str(num_dic.get(temp))
                    break

        if idx == len(s):
            break

    answer = int(answer)

    return answer

 


해결 방법

1. 딕셔너리에 값을 저장 ('one' : 1 의 형태로)

 

2. 값을 찾아서 존재하면 answer에 추가


느낀 점

 

 

ps. 개인적인 코드와 코드를 작성의 이유를 적은 것입니다.

 

오류적절치 않은 문법이 존재할 수 있으며, 다른 분들께는 굉장히 비효율적인 방법으로 여겨질 수 있습니다.

 

혹시 개선 사항, 오류 및 문제에 대한 수정 사항 등을 댓글로 남겨주신다면 감사한 마음으로 배우고 수정하겠습니다.