프로그래머스(Python) 풀이/Level.1

프로그래머스(Python) Level.1 숫자 문자열과 영단어 풀이

개발윗미 2022. 3. 28. 15:37

Python으로 구현한 81301번 숫자 문자열과 영단어 문제 풀이입니다.

 

https://programmers.co.kr/learn/courses/30/lessons/81301

 

코딩테스트 연습 - 숫자 문자열과 영단어

네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자

programmers.co.kr


def solution(s):
    answer = ""
    info = {'zero': '0', 'one': '1', 'two': '2', 'three': '3', 'four': '4', 'five': '5', 'six': '6', 'seven': '7', 'eight': '8', 'nine': '9'}
    value = ""
    for i in range(len(s)) :
        if s[i] in '0123456789' :
            answer += s[i]
        else :
            value += s[i]
            if value in info.keys() :
                answer += info[value]
                value = ""
                
    return int(answer)

 

1. 영단어를 숫자로 값을 넣어주기 위해 info 딕셔너리를 정의한다.

 

2. 전달받은 문자열 s의 문자를 하나씩 확인하여 해당 값이 숫자일 경우 그대로 answer에 추가한다.

 

3. 문자일 경우 임시 변수 value에 해당 문자열을 추가하고, value가 info 딕셔너리 key값으로 존재할 경우 그에 맞는 숫자를 answer에 추가한 후 value를 빈 문자열로 다시 초기화한다.

 

4. 반복문이 종료되면 문자열 형태로 이루어진 answer 값을 정수형으로 변환하여 반환한다.