(Swift) 백준 5622 다이얼

SteadySlower·2022년 5월 13일
0

Coding Test

목록 보기
26/305

5622번: 다이얼

let dic: [String : Int] = [
    "ABC": 3,
    "DEF": 4,
    "GHI": 5,
    "JKL": 6,
    "MNO": 7,
    "PQRS": 8,
    "TUV": 9,
    "WXYZ": 10,
]

func charToInt(char: Character) -> Int {
    for key in dic.keys {
        if key.contains(char) {
            return dic[key]!
        }
    }
    return 0 //👉 임의로 넣은 리턴값 (실제 Test Case에서는 리턴되지 않지만 빌드를 위해 넣음)
}

let times = readLine()!.map { charToInt(char: $0) }

print(times.reduce(0, +))

알파벳이 3개씩 묶여있었다면 아스키 코드를 써서 더 짧게 쓸 수 있었지만 중간에 4개씩 묶여있는 부분도 있기 때문에 그냥 일일이 구하는 방법 뿐이었습니다.
다른 분들의 풀이를 참고하니 Dictionary를 구현하는 방법 외에도 Switch문을 사용하는 풀이도 있었습니다.

profile
백과사전 보다 항해일지(혹은 표류일지)를 지향합니다.

0개의 댓글