[2021 카카오 채용연계형 인턴십] 숫자 문자열과 영단어

Seohyun·2024년 9월 12일
0

알고리즘

목록 보기
32/36

.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)
profile
Hail hamster

0개의 댓글