Algorithm/프로그래머스

[프로그래머스 / Python] 영어가 싫어요

Kun Woo Kim 2025. 5. 31. 20:44
반응형

문제 출처

https://school.programmers.co.kr/learn/courses/30/lessons/120894


문제

영어가 싫은 머쓱이는 영어로 표기되어있는 숫자를 수로 바꾸려고 합니다. 문자열 numbers가 매개변수로 주어질 때, numbers를 정수로 바꿔 return 하도록 solution 함수를 완성해 주세요.


내 답안

def solution(numbers):
    answer = 0
    c = dict(zip(["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]))
    for i in c.keys():
        numbers = numbers.replace(i, str(c[i]))
    return int(numbers)

남의 풀이

def solution(numbers):
    for num, eng in enumerate(["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"]):
        numbers = numbers.replace(eng, str(num))
    return int(numbers)

결론 및 느낀점

처음엔 dict()와 zip()을 이용해 사전을 만드는 방법이 떠올랐는데, 코드를 다시 살펴보니 enumerate()를 사용하는 것이 더 간결하고 직관적이었다. 이 경험을 통해 때로는 더 간단한 함수 하나가 전체 코드를 더 깔끔하게 만들어줄 수 있다는 것을 다시 한번 깨달았다.

반응형