[프로그래머스] 숫자 문자열과 영단어 _ 문제 풀이

 


1. 문제

https://programmers.co.kr/learn/courses/30/lessons/81301

2. 풀이

2.1. 나의 풀이

index i를 하나씩 증가시키면서 해당 글자가 dictionary에 있는지 확인하고, 있으면 해당 문자열에 속하는 숫자를 집어 넣습니다.

def solution(s):
    dict = {'zero': 0, 'one': 1, 'two': 2, 'three': 3, 'four': 4, 'five': 5, 'six': 6, 'seven': 7, 'eight': 8, 'nine': 9}
    answer = ''
    i = 0
    while i < len(s):
        if s[i].isdigit():
            answer += s[i]
            i = i + 1
            continue
        sub = 3
        while i + sub <= len(s):
            if s[i:i + sub] in dict:
                answer += str(dict[s[i:i + sub]])
                i = i + sub
            else:
                sub += 1

    return int(answer)

2.2. 숏코딩

replace 함수를 사용하여 손쉽게 문제를 해결할 수 있습니다.

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)