코딩테스트/PYTHON

[프로그래머스][PYTHON] Lv. 0 영어가 싫어요

_알파카 2024. 2. 29. 23:22
728x90

문제 설명

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

 

 

내 풀이

def solution(numbers):
    numbers = numbers.replace("zero", "0")
    numbers = numbers.replace("one", "1")
    numbers = numbers.replace("two", "2")
    numbers = numbers.replace("three", "3")
    numbers = numbers.replace("four", "4")
    numbers = numbers.replace("five", "5")
    numbers = numbers.replace("six", "6")
    numbers = numbers.replace("seven", "7")
    numbers = numbers.replace("eight", "8")
    numbers = numbers.replace("nine", "9")
    return int(numbers)

 

내 풀이는 정말 단순하다. 모든 글자들을 숫자로 대체하였다. 

0~9까지 대체할 것이 별로 없기 때문에 위처럼 하였다. 

 

다른 사람 풀이

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)

 

다른 사람들의 풀이를 보면..

파이썬 enumerate( ) 함수를 적용하여 zero ~ nine 리스트의 원소가 인덱스를 모두 접근할 수 있게 만들었다. 

그 후, 인덱스(숫자, num)와 값(글자, eng)을 이용하는데..

numbers를 모두 값을 숫자로 변경하는 형태로 코드가 이루어진다!

 

이 역시 좋은 풀이인듯하다!

 

느낀점

뭔가 기초, 입문 문제를 풀면서 비슷한 문제가 여럿 있는듯하다!

얼른 풀고 넘겨야겠다

끄읏-!

728x90