본문 바로가기
Programmers Coding-Test

[Python] 2021 카카오 채용연계형 인턴십 : 숫자 문자열과 영단어

by 으녜 2022. 3. 5.
728x90

https://programmers.co.kr/learn/courses/30/lessons/81301

 

코딩테스트 연습 - 숫자 문자열과 영단어

네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자

programmers.co.kr

 

 

 

💡 문제


 

네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 숫자의 일부 자릿수가 영단어로 바뀌어졌거나, 혹은 바뀌지 않고 그대로인 문자열 s가 매개변수로 주어집니다. s가 의미하는 원래 숫자를 return 하시오.

 

참고로 각 숫자에 대응되는 영단어는 다음과 같습니다.

 

 

 

 

[입출력 예]

 

#1 'one'은 1, 'seven'은 7, 'eight'은 8과 대응되기 때문에 1478로 변환된다.

 

 

 

 

[ Python Code 👩🏻‍💻]

import re

def solution(s):
    word = ['zero','one','two','three','four','five','six','seven','eight','nine']
    for i in word:
        s = re.sub(i,str(word.index(i)),s)
        
    return int(s)

 

Code Review>

 

1. 숫자와 대응되는 영단어로 이루어진 list를 만든다. (이때, 각 인덱스와 대응되는 숫자가 동일하다는 점을 알아야 한다.)

2. re.sub() 함수를 사용하여 만약 s 문자열에 해당 영단어가 포함되어 있으면 인덱스 숫자로 바꾼다. (index는 int 형태이므로 str로 변환하여 바꿔준다.)

 

 

한 번에 통과했다😊🙆🏻‍♀️

728x90