곰퓨타의 SW 이야기

[프로그래머스 level1 숫자 문자열과 영단어] 딕셔너리 활용하기 본문

TIL/프로그래머스

[프로그래머스 level1 숫자 문자열과 영단어] 딕셔너리 활용하기

곰퓨타 2021. 10. 3. 00:09

해결해야하는 문제는 다음과 같았다.

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

 

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

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

programmers.co.kr

 

오랜만에 머리 식힐 겸, 1단계를 보았다. 새로 생긴 1단계 문제들을 다 해결한 이후에 3단계를 다시 풀어보려고 한다..!

아이디어는 다음과 같다.

아이디어를 바탕으로 작성한 코드는 다음과 같다.

def solution(s):
    alpha = {'zero':'0','one':'1','two':'2','three':'3','four':'4','five':'5',
             'six':'6','seven':'7','eight':'8','nine':'9'}
    alpha_key = list(alpha.keys())
    temp = ''
    answer = ''
    for i in s:
        if i.isdigit() :
            if temp != '':
                answer += alpha[temp]
                temp = ''
            answer+=i
        else :
            temp += i
            if temp in alpha_key :
                answer += alpha[temp]
                temp = ''

    return int(answer)

 

 

 

다른 사람의 풀이를 보니 , 파이썬답게 파이썬 함수를 활용하여 깔끔하게 풀이한 것이 있어서 가져와보았다.

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)
Comments