쉽고 깔끔하게

[프로그래머스/python3] Level 1 숫자 문자열과 영단어 문제풀이 본문

Algorithm/Programmers

[프로그래머스/python3] Level 1 숫자 문자열과 영단어 문제풀이

찐무 2021. 9. 17. 14:37
728x90
반응형

(주)그렙

 


문제

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

 

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

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

programmers.co.kr

숫자의 일부 자릿수가 영단어로 바뀌어졌거나, 혹은 바뀌지 않고 그대로인 문자열 s가 매개변수로 주어집니다. s가 의미하는 원래 숫자를 return 하도록 solution 함수를 완성해주세요.


<풀이>

문제를 읽고 다음과 같은 해결 방법을 떠올렸다.

  1. 딕셔너리를 이용하여 key-value 쌍으로 서로 대응하는 데이터를 빠르게 찾기
  2. 딕셔너리의 key-value 쌍을 얻기 위해 items()라는 함수 사용하기
  3. 문자열을 변경(치환)해주기 위해 replace() 함수 사용하기

 

1. 딕셔너리를 이용하여 key-value 쌍으로 서로 대응하는 데이터를 빠르게 찾기
num_dic = {'zero':'0', 'one':'1', 'two':'2', 'three':'3', 'four':'4', 'five':'5', 'six':'6', 'seven':'7', 'eight':'8', 'nine':'9'}

영단어를 숫자로 바꾸어(영단어 → 숫자) 결과로 출력하기 때문에 key 값에 영단어를, value 값에 숫자를 넣어주었다.

 

2. 딕셔너리의 key-value 쌍을 얻기 위해 items()라는 함수 사용하기
for i in num_dic.items():

for 문을 수행할 때 각자의 key-value 쌍을 얻기 위해 앞에서 선언한 num_arr에 items() 함수를 사용하였다.

 

3. 문자열을 변경(치환)해주기 위해 replace() 함수 사용하기
answer = answer.replace(i[0], str(i[1]))

i[0] 즉, key 값을 i[1] value 값으로 바꿔주는 구문이다.

 

※ replace() 형식

str.replace("찾을 값", "바꿀 값", [바꿀 횟수])

<정답>

※ return int(answer)을 수행하는 이유는 answer이 숫자가 아닌 문자형으로 저장되어 있기 때문이다.

   ► 이를 수행하지 않으면 "123"으로 수행된다.

728x90
반응형