프로그래머스

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

띵지니어 2022. 3. 24. 03:24

https://programmers.co.kr/learn/courses/30/lessons/81301?language=python3 

 

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

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

programmers.co.kr

2021 카카오 채용연계형 인턴십

 

 

내 답안

def solution(s):
    words = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine']
    x = ''
    result = ''
    for i in s:
        if i.isalpha():
            x += i
            if x in words:
                result += str(words.index(x))
                x = ''
        else:
            result += i

    return int(result)

 

입력받은 문자열 하나하나 체크를 해서 알파벳이면 하나하나 담아서 words의 있는 수면 워드를 수로 바꿔주는 코드를 작성하였다.

예시로 설명하면

s = "one4seveneight" 로 입력 받았으면,

x = 'o' --> 'on' --> 'one' 이렇게 될 것 이고,

x가 words 안에 존재하면 그에 맞는 위치 인덱스를 저장해서 result에 더해주는 식으로 코드를 짰다.

그럼 x는 초기화되고 result = '1' 이 된다.

같은 과정을 반복하면 답을 도출 해낼 수 있었다.

 


 

가장 좋아요를 많이 받은 풀이

num_dic = {"zero":"0", "one":"1", "two":"2", "three":"3", "four":"4",
			"five":"5", "six":"6", "seven":"7", "eight":"8", "nine":"9"}

def solution(s):
    answer = s
    for key, value in num_dic.items():
        answer = answer.replace(key, value)
    return int(answer)

 

아직 정말 나는 많이 부족하다고 느낀다..