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

쓰옹·2022년 12월 9일
0

알고리즘 💻

목록 보기
3/6

🔒문제

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

제한사항

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

입출력 예

numbersresult
"onetwothreefourfivesixseveneightnine"123456789
"onefourzerosixseven"14067

🔑나의 답

깃허브링크

def solution(numbers):
    nums = [ "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" ]
    for i, nums in enumerate(nums):
        numbers = numbers.replace(nums, str(i))
    return int(numbers)
  • replace()를 사용해서 문자를 숫자로 바꿔준다

enumerate()

for문에서 인덱스..

파이썬에서 for문은 자바처럼 인덱스 변수로 증가하게 작성하지 않아서

i = 0
for num in [1, 2, 3]:
	prinnt(i, num)
    i+= 1
    
# 0, 1
# 1, 2
# 2, 3

이렇게 인덱스 값을 주게 된다
그치만 i 변수가 for문 종류 후에도 스페이스에 남아서 이상적이지 않다고 한다.

  • range(len(list)) 써서 인덱스 목록을 돌리는 방법도 있는데
    • 파이썬 답지 않다고 한다..

파이썬 내장함수 enumerate()

  • 인덱스와 원소를 동시에 접근하면서 루프를 돌릴 수 있음
  • 인덱스와 원소로 이루어진 튜플(tuple)로 만들어줌
  • 인자로 넘어온 목록을 기준으로 인덱스와 원소를 차례대로 접근하게 해주는 반복자(iterator) 객체를 반환해주는 함수



reference
https://www.daleseo.com/python-enumerate/

profile
기록하자기록해!

0개의 댓글