본문 바로가기
코딩공부/프로그래머스 (python)

[프로그래머스] 숫자 문자열과 영단어 (python)

by CodingKwon 2021. 7. 29.

문제 링크 (Level 1)

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

 

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

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

programmers.co.kr

 

나의 코드 (python)

def solution(s):
    answer = ""

    # 영단어에 대한 숫자 딕셔너리
    arr = {
        "zero" : 0, "one" : 1, "two" : 2,
        "three" : 3, "four" : 4, "five" : 5,
        "six" : 6, "seven" : 7, "eight" : 8,
        "nine" : 9
    }

    # 영단어를 담을 배열
    tmp = ""

    for i in s:
        if i.isdigit():
            # 숫자면 그냥 정답에 추가
            answer += i
        elif i.isalpha():
            # 문자면 tmp에 추가
            tmp += i
            if tmp in arr.keys():
                # 영단어 딕셔너리와 키가 일치할 때 정답에 추가
                answer += str(arr[tmp])
                # tmp 비우기
                tmp = ""
                
    return int(answer)

 

이 문제는 숫자이면 true를 반환하는 isdigit(), 알파벳이면 true를 반환하는 isalpha()를 이용하여 문자열을 검증하였습니다.

 

그리고 딕셔너리를 이용하여 키 값에 해당되는 문자열이 만들어지면 values를 이용하여 숫자로 바꿔서 저장할 수 있도록 하였습니다.

댓글