Just Fighting
[프로그래머스] 숫자 문자열과 영단어 본문
728x90
https://programmers.co.kr/learn/courses/30/lessons/81301
<문제 설명>
숫자의 일부 자릿수가 영어로 된 카드를 숫자로 다시 바꾸는 문제이다.
one4seveneight => 1478
<문제 이해>
일단 숫자들을 딕셔너리에 넣어놓고, for문을 돌려 숫자면 정답에 바로 추가하고,
문자면 temp에 모아놨다가 딕셔너리에 있는 숫자에 temp가 있으면 정답에 추가하는 방식을 생각했다.
<문제 풀이>
def solution(s):
answer = ""
number = {'zero':'0', 'one':'1', 'two':'2', 'three':'3', 'four':'4',
'five':'5', 'six':'6', 'seven':'7', 'eight':'8', 'nine':'9'}
temp = ""
for ss in s:
if not ss.isalpha() : answer += ss
else: temp += ss
if temp in number:
answer += number[temp]
temp = ""
return int(answer)
<풀이 개선>
다른 사람들이 작성한 코드르 보았는데, replace함수를 이용해
훨씬 간결하고 쉬운 코드를 작성한 것을 보았다.
def solution(s):
number = {'zero':'0', 'one':'1', 'two':'2', 'three':'3', 'four':'4',
'five':'5', 'six':'6', 'seven':'7', 'eight':'8', 'nine':'9'}
for num in number:
s = s.replace(num, number[num])
return int(s)
replace 어제도 써먹은 함수인데 왜 기억하지 못했을까,,,,,,,,,,,,,,,,ㅋㅋ
728x90
'Algorithm > 코딩테스트 연습' 카테고리의 다른 글
[프로그래머스] 크레인 인형뽑기 게임 (0) | 2022.01.13 |
---|---|
[프로그래머스] 키패드 누르기 (0) | 2022.01.12 |
[프로그래머스] 오픈채팅방 (0) | 2022.01.10 |
[프로그래머스] 신규 아이디 추천 (0) | 2022.01.09 |
[프로그래머스] 문자열 압축 (0) | 2022.01.07 |
Comments