[프로그래머스] 숫자 문자열과 영단어 (2021 카카오 채용연계형 인턴십)

Woonil·2024년 3월 30일
0

알고리즘

목록 보기
24/25
post-thumbnail

프로그래머스 - 숫자 문자열과 영단어 (2021 카카오 채용연계형 인턴십)
문제 링크

🤔 접근 방법

문자열이 들어오는 경우 경계를 설정해야 한다. 이 때, 적절한 시점에 잘라주는게 중요한데 그 방법으로 1. 임시 저장소와 2. 키 일치 를 생각했다. 1은 빈 문자열에 넣고 비워주는 방법을 선택했고, 2는 해시 구조의 딕셔너리를 선택하였다.

✏️ 구현

tmp = ''
tmp += char
	if tmp in dict:
    	answer += dict[tmp]
        tmp = ''

tmp에 들어오는 글자를 붙여주며 tmp가 딕셔너리의 키로 존재하는 경우에는 답에 붙여주고 tmp를 빈 문자열로 초기화한다.

(글을 쓰다가 떠올랐는데, 이러한 방법은 'onehundred'와 같은 경우를 'one'으로 취급하기 때문에 예외가 발생할 수 있다. 다만 이 문제의 경우 해당 경우가 없기 때문에 우선은 가능해 보인다.😓)

💻 전체코드

dict = {}
dict['zero'] = '0'
...(중간생략)
dict['nine'] = '9'

def solution(s):
    answer = ''
    tmp = ''
    for char in s:
        if char.isdigit():
            answer += char
        else:
            tmp += char
            if tmp in dict:
                answer += dict[tmp]
                tmp = ''
    
    return int(answer)
profile
우니리개발일지

0개의 댓글