728x90
*문제 출처는 프로그래머스에 있습니다.
문제 제목: 숫자 문자열과 영단어
문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/81301
풀이 1
딕셔너리 리플레이스
def solution(s):
nums = {
'zero' : '0',
'one' : '1',
'two' : '2',
'three' : '3',
'four' : '4',
'five' : '5',
'six' : '6',
'seven' : '7',
'eight' : '8',
'nine' : '9'
}
for key, value in nums.items():
s = s.replace(key,value)
return int(s)
풀이 2
리스트 리플레이스 ( 인덱스와 해당 문자열이 같은 것 이용)
def solution(s):
words = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine']
for i in range(len(words)):
s = s.replace(words[i], str(i))
return int(s)
풀이 3
딕셔너리 이용
def solution(s):
answer = ''
string = ''
dict = {'zero':0, 'one':1, 'two':2, 'three':3, 'four':4, 'five':5,
'six':6, 'seven':7, 'eight':8, 'nine':9}
for i in s:
if i.isdigit():
answer += i
else:
string += i
if string in dict.keys():
answer += str(dict[string])
string = ''
return int(answer)
※ 알아야 할 것
- 문자열에 대한 딕셔너리 key, value 개념 정리
728x90
'coding test - python > Programmers' 카테고리의 다른 글
Programmers / *[1차] 다트게임 / Python (0) | 2022.04.08 |
---|---|
Programmers / 로또의 최고 순위와 최저 순위 / Python (0) | 2022.04.08 |
Programmers / 완주하지 못한선수 / Python (0) | 2022.04.07 |
Programmers / 부족한 금액 계산하기 / Python (0) | 2022.04.07 |
Programmers / 3진법 뒤집기 / Python (0) | 2022.04.07 |