프로그래머스_LV.0_영어가 싫어요

Dreamer ·2023년 2월 13일
0

코딩테스트 준비

목록 보기
91/93

1. quiz

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

  • 제한사항
    numbers는 소문자로만 구성되어 있습니다.
    numbers는 "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" 들이 공백 없이 조합되어 있습니다.
    1 ≤ numbers의 길이 ≤ 50
    "zero"는 numbers의 맨 앞에 올 수 없습니다.

2. answer

def solution(numbers):
    for word, num in {'one':'1', 'two':'2', 'three':'3', 
           'four':'4', 'five':'5', 'six':'6', 'seven':'7', 'eight':'8', 'nine':'9',
            'zero':'0'}.items():
        numbers = numbers.replace(word.lower(), num)
    return int(numbers)

3. 다른 사람의 풀이

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)

4. enumerate()

>>> for i, letter in enumerate(['A', 'B', 'C']):
...     print(i, letter)
...
0 A
1 B
2 C
  • dictionary를 만들지 않고 enumerate()를 사용하면 좀 더 간결한 코드를 만들 수 있다. enumerate는 인덱스를 만들어 준다.
profile
To be a changer who can overturn world

0개의 댓글