1 분 소요

문제 링크

내 풀이

def solution(s):
    new_num = ''
    letter = ''
    num_dict = {'zero': '0', 'one': '1', 'two': '2', 'three' : '3', 'four': '4', 'five': '5', 'six': '6', 'seven': '7', 'eight': '8', 'nine': '9'}
    for word in s:
        if word.isdigit():
            new_num += word
            continue
        letter += word
        if letter in num_dict:
            new_num += num_dict[letter]
            letter = ''
        
    return new_num

다른 풀이


def solution(s):
    
    # {숫자영단어 : 숫자문자열}
    eng_num = {
        "zero" : "0",
        "one" : "1",
        "two" : "2",
        "three" : "3",
        "four" : "4",
        "five" : "5",
        "six" : "6",
        "seven" : "7",
        "eight" : "8",
        "nine" : "9"
    }
    
    # s 문자열안에 숫자영단어 있으면 숫자로 바꿔주기
    for eng, num in eng_num.items():
        if eng in s:
            s = s.replace(eng, num)
    
    return int(s)

출처: https://1ets-just-do-it.tistory.com/41 [파이썬은 신이야🔥🔥🔥:티스토리]

풀이 해석

dict.items()를 이용하여 key가 s안에 들어있을 경우 value로 replace 해주는 방식을 이용하였다.

배울 점

  • dict.items()를 이용한 key,value for 문
  • replace를 이용해 변환하기

댓글남기기