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)