[프로그래머스 LV0] 모스부호 (1)

jonghwan·2022년 11월 22일
0

프로그래머스

목록 보기
62/71
post-thumbnail

1. 문제 설명

모스부호 (1)

2. 문제 분석

딕셔너리를 활용해서 letter의 값이 morse의 key 값과 같으면 morse의 value를 반환해준다.

3. 나의 풀이

import Foundation

func solution(_ letter:String) -> String {
    var 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"    
    ]
    var arr:[String] = letter.components(separatedBy: " ")
    var result:String = ""
    
    for i in arr {
        result += morse[i]!
    }
    return result
}

letter의 문자열을 " "이 있을 때마다 쪼개서 arr 배열에 넣어준다.

딕셔너리에 데이터 삽입을 해준다.

Dic[안에 key 값을 넣어주면 value 값 반환]

arr 요소가 morse의 key 값과 같으면 morse의 value 값이 반환된다 !

4. 다른 사람의 풀이

import Foundation

func solution(_ letter:String) -> String {
    let 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 letter.split(separator: " ").map { morse[String($0)]! }.reduce("", +)
}

map을 활용해서 morse의 value를 구하고 reduce()를 통해 결합해준다.🔥

0개의 댓글