오늘 풀어본 문제
https://school.programmers.co.kr/learn/courses/30/lessons/81301
네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 주어진 문자열 s가 숫자의 일부 자릿수를 영단어로 바꾼 것이므로, 이를 원래 숫자로 변환하는 함수 solution을 작성하는 문제입니다.
문제 풀이 순서:
각각의 숫자을 지칭하는 단어와 숫자를 매핑하는 딕셔너리를 생성합니다.
def solution(s):
num_dict = {
'zero' : '0',
'one' : '1',
'two' : '2',
'three' : '3',
'four' : '4',
'five' : '5',
'six' : '6',
'seven' : '7',
'eight' : '8',
'nine' : '9'
}
딕셔너리에 저장되어 있는 값들을 순회하며 각각 단어와 숫자를 저장하며 반복할 반복문을 작성합니다.
for word, num in num_dict.items():
매개변수(변환해야하는 단어)를 딕셔너리에 저장되어 있는 키(Key) 이라면 몫(Value)의 값으로 변환하여 재배치를 합니다.
s = s.replace(word, num)
재 배치된 값을 출력하는 명령어를 작성합니다.
return int(s)
최종 코드문:
def solution(s):
num_dict = {
'zero' : '0',
'one' : '1',
'two' : '2',
'three' : '3',
'four' : '4',
'five' : '5',
'six' : '6',
'seven' : '7',
'eight' : '8',
'nine' : '9'
}
quiz = s
for word, num in num_dict.items():
quiz = quiz.replace(word, num)
answer = int(quiz)
return answer
상세 설명:
- 굳이 s를 quiz로 바꿔 출력한 이유는 좀 더 "문제를 풀었다" 라는 느낌이 들 것 같아서 바꾸어 출력하였다
- answer를 굳이 int(quiz)로 바꾼 뒤 answer가 출력되게 한 이유 quiz를 풀었다는 답변으로 answer로 하는게 더 재밌을 것 같아서 그렇게 작성했다.
오늘 배운 점:
- 딕셔너리에 대해 이론만 공부를 해오다 처음으로 실습하여 풀어보았습니다.
- replace() 통해 복잡할 수 있는 문자열 변환 작업방법을 알게되었습니다.
'Python' 카테고리의 다른 글
본 캠프 Python 알고리즘 코드카타 12일차 (0) | 2024.07.12 |
---|---|
본 캠프 Python 알고리즘 코드카타 10일차 (0) | 2024.07.06 |
본 캠프 Python 알고리즘 코드카타 9일차 (0) | 2024.07.02 |
본 캠프 Python 알고리즘 코드카타 8일차 (0) | 2024.07.01 |
본 캠프 Python 알고리즘 코드카타 7일차 (0) | 2024.06.30 |