알고리즘문제풀이/프로그래머스
2021 KAKAO INTERNSHIP [숫자문자열과 영단어] [python]
쉽지않네
2021. 7. 10. 16:31
https://programmers.co.kr/learn/courses/30/lessons/81301
코딩테스트 연습 - 숫자 문자열과 영단어
네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자
programmers.co.kr
문제 요약
숫자와 (0~9까지의 ) 영단어( ex | "zero" , "one"....)가 섞여있는 상태의 문자열로 주어질 경우
이를 숫자로 반환하여라
ex|. "03fiveseven8" => 03578
나의 풀이
C++ 보다는 문자열 처리에 편리한 javascript , python을 사용하고 replace와 같은 내장 함수를 사용했다.
길이가 50보다 작고 생성된 숫자는 2^32 보다 작으므로
시간 복잡도는 전혀 고려하지 않아도 되고 4바이트 integer 타입도 괜찮다.
소스코드
from functools import reduce
digit={'zero':'0','one':'1','two':'2','three':'3','four':'4','five':'5','six':'6','seven':'7','eight':'8','nine':'9'}
def solution(s):
return int(reduce(lambda ans,d:ans.replace(d,digit[d]),digit.keys(),s))