프로그래머스 풀이

프로그래머스 숫자 문자열과 영단어(파이썬)

ag2개발자 2022. 2. 10. 04:07

영단어 별로 딕셔너리로 값을 지정하고 주어진 문자열은 숫자, 3글자, 4글자, 5글자중 하나임으로 케이스를 나눠서 숫자로 바꿔준다.

def solution(s):
    answer = 0
    b=[]
    a = {"zero":0, "one": 1, "two": 2, "three": 3, "four": 4, "five":5, "six":6, "seven":7, \
        "eight": 8, "nine": 9}      #영단어 별로 숫자로 정리
    while True:
        if s[:3] in a:      #3글자일때
            b.append(str(a[s[:3]]))     #3글자에 해당하는 a값을 b에 추가
            s=s[3:]     #s는 3번째 이후부터
        elif s[:4] in a:        #4글자일때
            b.append(str(a[s[:4]]))
            s=s[4:]
        elif s[:5] in a:        #5글자일때
            b.append(str(a[s[:5]]))
            s=s[5:]
        else:       #숫자일때
            b.append(s[0])
            s=s[1:]
        if s=="":
            break       #빈 문자열이면 break
    answer = "".join(b)
    
    return int(answer)      #배열을 합쳐주고 다시 정수로