상세 컨텐츠

본문 제목

[ 프로그래머스 / 파이썬 ] 영어가 싫어요

알고리즘/프로그래머스

by 감싹이 2023. 2. 1. 19:31

본문

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

🎉 문제

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

 

🎉 풀이

enumerate(array) 라는 함수를 사용했다

기본적으로 index, 원소로 이루어진 튜플을 만들어준다고 한다 

 

korea = ["가", "나", "다"]

for index, kor in enumerate(korea):
	print(index, kor)
    
# 출력
# 0 가
# 1 나
# 2 다

 

시작 인덱스 값을 변경하려면 start 조건을 사용하면 된다

korea = ["가", "나", "다"]

for index, kor in enumerate(korea, start=1):
	print(index, kor)
    
# 출력
# 1 가
# 2 나
# 3 다

 

우와 그럼 입력 받을 때도 튜플로 받을 수 있지 않을까??

KOR = list(enumerate(input().split(), start=1))	# '가 나 다' 입력

print(KOR)

# [(1, '가'), (2, '나'), (3, '다')]

튜플 언패킹 unpacking 하기 (참고 : Codetorial )

# Unpacking 1
a, b = (1, 2)
print(a)
print(b)

# 출력
# 1
# 2
# Unpacking 2
a, _ = (1, 2)
print(a)

# 필요없는 값은 _(언더스코어)로 처리

#출력
# 1
# Unpacking 3

a, b, *c = (1, 2, 3, 4, 5)
print(a)
print(b)
print(c)

#출력
# 1
# 2
# [3, 4, 5]
# Unpacking 4
a, b, *_ = (1, 2, 3, 4, 5)
print(a)
print(b)

# 언더스코어(_) 앞에도 *을 붙일 수 있습니다

# 출력
# 1
# 2

 

🎉 코드

def solution(numbers):
    nums = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"]

    for index, num in enumerate(nums):
        numbers = numbers.replace(num, str(index))
    
    return int(numbers)

 

 

 

관련글 더보기