본문 바로가기
Coding Test/Programmers

프로그래머스 - (카카오 2021)숫자 문자열과 영단어 (Python)

by JUNG씨 2022. 11. 17.

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr



👩🏻‍💻 처음 작성한 코드 :

무식한 방법이지만 replace 를 사용해서 하나하나 다 대체할 숫자들을 지정해줬다. 코드가 돌아가긴 하지만 이건 좋은 풀이가 아닌 것은 확실하다^_^;;;;

def solution(s):
    answer = s
    answer = answer.replace('zero', '0')
    answer = answer.replace('one', '1')
    answer = answer.replace('two', '2')
    answer = answer.replace('three', '3')
    answer = answer.replace('four', '4')
    answer = answer.replace('five', '5')
    answer = answer.replace('six', '6')
    answer = answer.replace('seven', '7')
    answer = answer.replace('eight', '8')
    answer = answer.replace('nine', '9')
     
    return int(answer)

 

 

🔑 딕셔너리와 반복문을 이용해 작성한 코드 

def solution(s):
    answer = s
    num_s = {
        "zero":"0",
        "one":"1",
        "two":"2",
        "three":"3",
        "four":"4",
        "five":"5",
        "six":"6",
        "seven":"7",
        "eight":"8",
        "nine":"9"
    }
    
    for item in num_s.items():
        answer = answer.replace(item[0], str(item[1]))
        
    return int(answer)

-> 딕셔너리로 쓸 생각은 1도 못했는데 역시나 아직 갈길이 멀다.. ㅎㅎㅎ