샘성의 iOS 개발 일지

[코딩테스트 입문] 모스 부호 (1) 본문

Algorithm/프로그래머스

[코딩테스트 입문] 모스 부호 (1)

SamusesApple 2023. 5. 10. 16:08
728x90

문제 설명:

  머쓱이는 친구에게 모스부호를 이용한 편지를 받았습니다. 그냥은 읽을 수 없어 이를 해독하는 프로그램을 만들려고 합니다. 문자열 letter가 매개변수로 주어질 때, letter를 영어 소문자로 바꾼 문자열을 return 하도록 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'
}

 

 

 

 

내 풀이:

import Foundation

func solution(_ letter:String) -> String {
    let morse: [String: String] = [
    ".-":"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"
    ]
    // 띄어쓰기로 분리해서 morse딕셔너리에 키값 넣어서 해당되는 알파벳 찾기 (없는 경우 없으므로 강제옵셔널벗기기)
    // components의 리턴타입은 String이므로 joined()로 배열 합쳐서 문자열 만들기
    return letter.components(separatedBy: " ").map { morse[$0]! }.joined()
}
728x90