[문제 요약]
머쓱이는 친구에게 모스부호를 이용한 편지를 받았습니다. 그냥은 읽을 수 없어 이를 해독하는 프로그램을 만들려고 합니다. 문자열 letter가 매개변수로 주어질 때, letter를 영어 소문자로 바꾼 문자열을 return 하도록 solution 함수를 완성해보세요. (모스부호는 주어집니다)
https://school.programmers.co.kr/learn/courses/30/lessons/120838
🎨 풀이
💡 전체 코드
def solution(letter):
# 모스부호 (딕셔너리)
morse = {
'.-':'a','-...':'b','-.-.':'c','-..':'d','.':'e','..-.':'f',
'--.':'g','....':'h','..':'i','.---':'j','-.-':'k','.-..':'l',
'--':'m','-.':'n','---':'o','.--.':'p','--.-':'q','.-.':'r',
'...':'s','-':'t','..-':'u','...-':'v','.--':'w','-..-':'x',
'-.--':'y','--..':'z'}
answer = ''
letter = letter.split(" ")
# 딕셔너리를 이용해 answer에 글자 하나씩 넣기
for i in range(len(letter)):
answer += morse[letter[i]]
return answer
> 핵심 : 딕셔너리 이용!
🍦 코드 설명 (실행 순서대로 나열)
#solution
morse = {
'.-':'a','-...':'b','-.-.':'c','-..':'d','.':'e','..-.':'f',
'--.':'g','....':'h','..':'i','.---':'j','-.-':'k','.-..':'l',
'--':'m','-.':'n','---':'o','.--.':'p','--.-':'q','.-.':'r',
'...':'s','-':'t','..-':'u','...-':'v','.--':'w','-..-':'x',
'-.--':'y','--..':'z'}
1. 딕셔너리를 그대로 함수 안에 써준다.
- 문제에 있던 모스부호 그대로 가져온 것이다.
letter = letter.split(" ")
# 딕셔너리를 이용해 answer에 글자 하나씩 넣기
for i in range(len(letter)):
answer += morse[letter[i]]
2. letter을 공백 기준으로 구분해준다.
- (ex) letter = ".... . .-.. .-.. ---" => letter = ['....', '.', '.-..', '.-..', '---']
3. letter 길이만큼 for문을 돌린다.
4. answer에 morse[letter[i]]를 넣어준다.
- 과정 : letter[i] = '....' 라면, morse['....']와 같다. 이건 morse 중에 key '....' 의 값을 말하는 것이기 때문에, answer에 h가 들어가는 것이다.
5. answer을 return 한다.
끝~
⭐ 느낀점
> 그래도 이제 좀 딕셔너리를 알 것 같다는 느낌이 들기도 하고,,~~^ㅁ^ 문제들 계속 팍팍 풀어야겠다!
'알고리즘 공부 > 프로그래머스' 카테고리의 다른 글
[프로그래머스 / 입문] 로그인 성공? (파이썬) (0) | 2022.10.02 |
---|---|
[프로그래머스 / 입문] 세균 증식 (파이썬) (0) | 2022.10.01 |
[프로그래머스 / 입문] 배열 두 배 만들기 (파이썬) (0) | 2022.09.29 |
[프로그래머스 / Level 2] 행렬의 곱셈 (파이썬) (0) | 2022.09.28 |
[프로그래머스 / Level 2] 프린터 (파이썬) (0) | 2022.09.26 |