종식당

[프로그래머스 lv.1] 2021 카카오 채용연계형 인턴 숫자 문자열과 영단어 본문

프로그래머스

[프로그래머스 lv.1] 2021 카카오 채용연계형 인턴 숫자 문자열과 영단어

종식당 2024. 1. 22. 16:43
728x90
반응형

 

이 문제를 처음 봤을 때 어렵지 않게 풀 수 있을 것 같았고  문자열 관련 문제를 많이 풀어본 점이 도움이 많이 된 것 같다. 일단 딕셔너리를 사용해야겠다는 생각이 먼저 들었다. 문자열 s안에서 영단어를 숫자로 바꾸어 출력해야 했기 때문에 s안에서의 영단어가 무엇인지를 알아내야 했다. 때문에 영단어를 딕셔너리의 key로 설정하고 이에 해당하는 숫자를 value로 설정해 주었다.

그 후 for문을 통해 영단어가 무엇인지 확인을 해야 했는데 이 for문을 s안에서 돌려야 할지 딕셔너리 안에서 돌려야 할지 고민을 했다. 먼저 dict.keys()를 사용해서 딕셔너리의 key안에서 for문을 돌리고 이때 key에 해당하는 영단어가 s에 있다면 이 단어를 key의 value값으로 replace를 이용해 바꿔주었다.

여기서 기억해야 할 점은 replace() 함수를 사용할 때는 첫 번째 인자가 기존에 있던 문자열, 두 번째 인자가 새롭게 바꿀 문자열 형태로 들어간다. 그리고 두 인자 모두 문자열로 작성해야 한다는 점을 꼭 기억하자!!!

그리고 반환할 때는 정수로 반환해야 해서 int()로 반환하였다.

 

  • 제출 코드
def solution(s):
    answer = 0
    dict = {"zero":0, "one":1, "two":2, "three":3, "four":4, "five":5, "six":6, "seven":7, "eight":8, "nine":9}
    
    for i in dict.keys():
        if i in s:
            s = s.replace(i,str(dict[i]))  
    return int(s)

 

카카오 문제라서 한번 풀어봤는데 생각보다 어렵지 않았고 lv1이라서 쉽게 생각할 수 있었던 것 같다. 이제 lv1문제들을 위주로 풀어보고 lv2도 한번 도전해 봐야겠다.

728x90
반응형