방명록
- [Python] 점프 투 파이썬_종합문제_Q16_모스 부호 해독2021년 12월 13일 09시 54분 06초에 업로드 된 글입니다.작성자: DandyNow728x90반응형
문제
점프 투 파이썬 Q16 문제의 지문은 다음과 같다.
Q16 모스 부호 해독
문자열 형식으로 입력받은 모스 부호(dot:. dash:-)를 해독하여 영어 문장으로 출력하는 프로그램을 작성하시오.
○ 글자와 글자 사이는 공백 1개, 단어와 단어 사이는 공백 2개로 구분한다.
○ 예를 들어 다음 모스 부호(.... . ... .-.. . . .--. ... . .- .-. .-.. -.--)는 "HE SLEEPS EARLY"로 해석해야 한다.
작성 코드
아래는 Q16 문제를 해결하기 위해 작성한 코드이다.
# 딕셔너리 자료형 이용 dic = { '.-':'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' } # mos 함수 생성 def mos(s): rst = '' # 결과 변수 lst = s.split(' ') # 문자열을 이용해 리스트 자료형으로 생성 print(lst) for i in lst: if i == '': # 공백을 처리하기 위한 if문이 이 코드의 핵심이다! rst += ' ' else: # else가 누락되면 KeyError: '' 발생함 rst += dic[i] return rst ipt = '.... . ... .-.. . . .--. ... . .- .-. .-.. -.--' print(mos(ipt)) # mos 함수 호출
문제와 해결
mos 함수를 선언하면서
가장먼저 문자열 '.... . ... .-.. . . .--. ... . .- .-. .-.. -.--'을 공백 한개를 기준으로 나누어 담는
리스트 자료형을 생성하였다.
코드를 실행하면 다음과 같은 리스트가 생성된다.
['....', '.', '', '...', '.-..', '.', '.', '.--.', '...', '', '.', '.-', '.-.', '.-..', '-.--']
특이한 점은 생성된 리스트에 ''가 들어 있다.
공백 하나로 나누어 담았기 때문에
공백이 두개였던 경우에
''
로 처리되어 담긴 것이다.
기대했던
' '
와 같이 공백이 있는 모양이 아니었다.
"HE SLEEPS EARLY"로 출력 할때
E S, S E에서와 같이 공백을 표현해야 하는데
곤란해 진것이다.
이 부분을 if조건문으로 해결했다.
if조건문이 없이 for문을 돌리면
KeyError: ''
가 발생한다.
따라서 조건문에서 반드시
''
부분에 대한 처리를 해줘야 한다.
728x90반응형'CS > 코딩 테스트' 카테고리의 다른 글
[알고리즘][파이썬] 백준_2750, 2751_수 정렬하기 1~2 (0) 2021.12.14 [알고리즘][파이썬] 백준_1436_영화감독 숌 (0) 2021.12.13 [Python] 점프 투 파이썬_종합문제_Q15_Duplicate Numbers (0) 2021.12.10 [Python] 점프 투 파이썬_종합문제_Q14_문자열 압축하기 (0) 2021.12.09 [Python] 점프 투 파이썬_종합문제_Q13_DashInsert 함수 (0) 2021.12.09 다음글이 없습니다.이전글이 없습니다.댓글