[프로그래머스](python) 숫자 문자열과 영단어 - 2021 카카오 채용연계형 인턴십

berry ·2021년 8월 1일
0

Algorithm

목록 보기
56/77
post-thumbnail

문제


🧩 틀린 코드

answer = ''
s = "one4seveneight"
stack = []

number = {0:'zero', 1:'one', 2:'two', 3:'three', 4:'four', 5:'five', 6:'six', 7:'seven', 8:'eight', 9:'nine'}

for i in s:
    if i.isalpha():
        stack += i
        if "".join(stack) in number.values():
            answer += number.keys["".join(stack)]
    else:
        answer += i

일단 변수가 많고...
알파벳 하나씩 쌓으면서 그 알파벳의 조합이 딕셔너리에 있으면 꺼내서 answer에 더하는 게 너무 불필요해서 딕셔너리에 대해 더 찾아보았더니, key와 value 바꾸는 방법이 있었다!


🧩 수도 코드

딕셔너리 만들고 key와 value 바꾸기


🏁 내 코드

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

item[0]은 1,2,3 과 같은 숫자라 str인 values와 replace할 수 없어서 str() 해주었다.

📌dictionary


🧩 다른 코드

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)

key와 value를 지정해서 해주었다. 내 풀이와 같은 알고리즘!


profile
Engineer

0개의 댓글