lv1. 숫자 문자열과 영단어

Yona·2021년 10월 18일
0

🤖 programmers

목록 보기
2/5

문제

시간초과 난 코드

# string 내 alphabet 한개라도 있으면 1리턴
def is_alpha_in_str(target) :
    for ch in target : 
        if ch.isalpha() :
            return 1
    return 0


def solution(s):
    answer = s
    while(is_alpha_in_str(answer)) :
        answer = answer.replace('one', '1')
        answer = answer.replace('two', '2')
        answer = answer.replace('three', '3')
        answer = answer.replace('four', '4')
        answer = answer.replace('five', '5')
        answer = answer.replace('six', '6')
        answer = answer.replace('seven', '7')
        answer = answer.replace('eight', '8')
        answer = answer.replace('nine', '9')

    return int(answer)

시간 초과가 났다..!

수정 코드

def solution(s):
    answer = s 
    num_dict = {'zero':0, 'one':1, 'two':2, 'three':3, 'four':4, 'five':5, 'six':6, 'seven':7, 'eight':8, 'nine':9}
    
    for item in num_dict.items():
        answer = answer.replace(item[0], str(item[1]))   

    return int(answer)

딕셔너리 아예 활용을 못하고 있었는데..
반복분 + 딕셔너리가 빠르고 깔끔하구만 🤔

profile
Sometimes you win, sometimes you learn 🏃‍♀️

0개의 댓글