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

Kun-Woo Kim·2024년 12월 30일

알고리즘 공부

목록 보기
10/24
post-thumbnail

문제 출처

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()를 사용하는 것이 더 간결하고 직관적이었다. 이 경험을 통해 때로는 더 간단한 함수 하나가 전체 코드를 더 깔끔하게 만들어줄 수 있다는 것을 다시 한번 깨달았다.

profile
안녕하세요, 김건우입니다! 웹과 앱 개발에 열정적인 전문가로, Next.js 14, Node.js, Express, Flutter 등을 활용한 프로젝트를 다룹니다. 제 블로그에서는 개발 여정, 기술 분석, 실용적 코딩 팁을 공유합니다. 창의적인 솔루션을 실제로 적용하는 과정의 통찰도 나눌 예정이니, 궁금한 점이나 상담은 언제든 환영합니다.

0개의 댓글