반응형
문제설명
https://programmers.co.kr/learn/courses/30/lessons/81301
코딩테스트 연습 - 숫자 문자열과 영단어
네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자
programmers.co.kr
사고과정
- 우선은 숫자를 알파벳로 나타낸 문자와 그에 매핑되는 숫자를 딕셔너리로 만들었다.
- 그리고 주어지는 문자와 숫자가 합해진 문자열 하나하나씩 도는데, 숫자이면 바로 결과값에 append 시켰다.
- 만약 알파벳인 경우에는 알파벳 하나하나 받을 때마다 딕셔너리의 key에 있는 값들 중에 존재하는지 확인하면서 숫자를 알파벳으로 나타낸 문자가 완성되는 순간 바로 결과값에 append 하는 식으로 구현했다.
- 처음에 당황하긴 했지만 잘 구현함!
풀이
def solution(s):
keys = ['zero', 'one', 'two', 'three', 'four', 'five', 'six',
'seven', 'eight', 'nine']
values = [str(x) for x in range(10)]
maps = dict(zip(keys, values))
result = []
string = ''
for x in s:
if x.isdigit():
result.append(x)
elif x.isalpha():
string += x
if string in keys:
result.append(maps[string])
string = ''
return int(''.join(result))
반응형
'알고리즘 삽질장' 카테고리의 다른 글
[프로그래머스] 크레인 인형뽑기 게임 (0) | 2021.12.07 |
---|---|
[프로그래머스] 키패드 누르기 (0) | 2021.12.07 |
[프로그래머스] 신규 아이디 추천 (0) | 2021.12.06 |
[프로그래머스] 로또의 최고 순위와 최저 순위 (0) | 2021.12.06 |
[인프런] 회장뽑기 (0) | 2021.12.04 |