- 문제 : https://school.programmers.co.kr/learn/courses/30/lessons/81301

 

Level1 문제이고, 스스로 푼 문제다 

 

주어진 문자열 s의 문자들이 구분없이 있어서 이걸 어떻게 분리해야할지 몰랐다 

 

그래서 s의 첫번째 원소를 얻은 다음, 그것이 숫자라면 answer 리스트에 추가하고,

아니라면 문자가 숫자 문자(zero, one 등)가 나올때까지 pop을 진행한다. 

위 과정을 하기 위해서 directory 디렉토리를 만들었다

만들어진 문자 중에 directory 키 값이 있다면 그에 해당하는 숫자를 answer에 추가한다 

 

- 정답 풀이 :

def solution(s):
    s= list(s)
    answer = []
    directory = {"zero" : 0 , "one" : 1 , "two" : 2 , "three" : 3 , "four" : 4 ,"five" : 5 , "six" : 6 , "seven" : 7 ,"eight" : 8 , "nine" : 9}
    
    while s:
        x = s.pop(0)
        if x.isdigit():
            answer.append(int(x))
        else:
            temp = ''
            temp += x
            while s:
                if temp in directory.keys():
                    break
                y = s.pop(0)
                temp += y 
            answer.append(directory[temp])
                
    n = len(answer)
    print(answer)
    final = ''
    for i in range(len(answer)):
        final += str(answer[i])
        
    return int(final)

 

+ Recent posts