모스부호(1)-프로그래머스(python)

hh_mon__a·2023년 1월 4일
0

코딩테스트

목록 보기
5/14

문제


실수 코딩

  • 문제를 잘 못 읽어 문자를 입력하면 모스부호가 나오는 식으로 코드를 짰다...
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'
}

def solution(letter):
    
    answer=[]
    # morse_dict={v:k for k,v in morse.items()}
    reverse_dict=dict(map(reversed,morse.items()))
    for i in letter.lower():
                answer.append(reverse_dict[i])
    return ' '.join(answer)
  • 계속 빈 문자열이 나오길래 왜그런가 다시 확인해보니 모스부호를 넣으면 문자열을 출력해주는 것이었다..!!
  • 문제를 잘 읽자는 생각이 들었다...
  • 그래도 딕셔너리 키,값 변경하는 방법을 제대로 알아가서 다행이다.

코딩

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=[]
    for i in letter.split(' '):
        answer.append(morse[i])
    return ''.join(answer)

다른 사람의 풀이

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'
    }

    return ''.join([morse[i] for i in letter.split(' ')])
  • 나랑 같은 코드지만 컴프리헨션 사용했다... 대단
  • 나도 컴프리헨션 사용해야지
profile
데이터분석/데이터사이언스/코딩

0개의 댓글