코딩테스트 연습 - 숫자 문자열과 영단어
네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자
programmers.co.kr
Programmers(2021 카카오 채용연계형 인턴십). 숫자 문자열과 영단어
네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다.
다음은 숫자의 일부 자릿수를 영단어로 바꾸는 예시입니다.
1478 → "one4seveneight"
234567 → "23four5six7"
10203 → "1zerotwozero3"
이렇게 숫자의 일부 자릿수가 영단어로 바뀌어졌거나, 혹은 바뀌지 않고 그대로인 문자열 s가 매개변수로 주어집니다. s가 의미하는 원래 숫자를 return 하도록 solution 함수를 완성해주세요.
참고로 각 숫자에 대응되는 영단어는 다음 표와 같습니다.
제한사항
* 1 ≤ s의 길이 ≤ 50
* s가 "zero" 또는 "0"으로 시작하는 경우는 주어지지 않습니다.
* return 값이 1 이상 2,000,000,000 이하의 정수가 되는 올바른 입력만 s로 주어집니다.
❧ 입출력 예
❧ 정답
def solution(s):
answer = ''
std = ''
dic = ['zero','one','two','three','four','five','six','seven','eight','nine']
for i in range(len(s)):
if str(s[i]).isdigit():
answer += str(s[i])
else:
std+=s[i]
if std in dic:
answer += str(dic.index(std))
std = ''
return int(answer)
1️⃣ 입력 문자열 s 가 숫자일 경우, 리턴 문자열 answer에 추가
'str'.isdigit( ) : 'str'이 숫자일 경우 True 리턴
2️⃣ 숫자가 아닌 경우, std(standard) 변수에 현재 문자열 추가 후 dic 리스트에 std와 일치하는 문자열(숫자 영단어) 이 있을 경우, dic에서 일치하는 해당 문자열을 최종 리턴 문자열 answer에 추가한다.
'📊 Algorithm > Algorithm PS' 카테고리의 다른 글
[알고리즘 일기] 72. ATM (0) | 2021.07.13 |
---|---|
[알고리즘 일기] 71. 알파벳 찾기 (0) | 2021.07.13 |
[알고리즘 일기] 69. 문자열 내 마음대로 정렬하기 (0) | 2021.07.09 |
[알고리즘 일기] 68. 더 맵게 / 힙 자료구조 (0) | 2021.07.08 |
[알고리즘 일기] 67. 음양 더하기 (0) | 2021.07.06 |