본문 바로가기

알고리즘

[프로그래머스] level1 - 숫자 문자열과 영단어

728x90
 

코딩테스트 연습 - 숫자 문자열과 영단어

네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자

programmers.co.kr

나의코드

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

정말 그냥 1차원적으로 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)

dict.item(): key, value를 반환해주는 함수

list.enumerate() : index, value를 반환해주는 함수

 


역시 아는 만큼 문자를 풀 수 있는 도구가 많아지는 것 같다. 지금은 일단 다양한 도구를 최대한 알아가는 것이 우선인 것 같다.

반응형