프로그래머스 2021카카오인턴십: 숫자 문자열과 영단어

Minhee kang·2021년 9월 30일
0

문제 보러 가기👈

💡 풀이

✔ 풀이 방법1

각 문자열에 대응하는 숫자문자열을 가지는 딕셔너리를 생성.
s의 각 문자를 반복하며 숫자면 그대로 answer에 더해주고, 문자일 경우 num_s에 더한 후, 딕셔너리에 존재하는지 확인한다. 딕셔너리에 존재하는 값 이라면 해당 키의 값을 answer에 더해주고, num_s를 초기화 한다.

구현 코드👇

def solution(s):
    answer = ''
    num_dic = {'zero': '0', 'one': '1', 'two': '2', 'three': '3', 
               'four': '4', 'five': '5', 'six': '6', 'seven': '7', 
               'eight': '8', 'nine': '9'}
    
    num_s = ''
    for char in s:
        if char.isdigit():
            answer += char
        else:
            num_s += char
            if num_s in num_dic:
                answer += num_dic[num_s]
                num_s = ''
            
    return int(answer)

✔ 풀이 방법2

다른 사람의 코드를 참고했다.

풀이1과 마찬가지로 각 문자열에 대응하는 숫자문자열을 가지는 딕셔너리를 생성.
입력으로 주어진 문자열 s에 replace함수를 사용하여 딕셔너리의 key와 대응하는 문자를 value로 대체한다.

구현 코드👇

def solution(s):
    
    num_dic = {'zero': '0', 'one': '1', 'two': '2', 'three': '3', 
               'four': '4', 'five': '5', 'six': '6', 'seven': '7', 
               'eight': '8', 'nine': '9'}
    
    for key, val in num_dic.items():
        s = s.replace(key, val)
       
    return int(s)

0개의 댓글