본문 바로가기

프로그래머스 (Swift)/기초

[Day6-2] 수 조작하기1

문제

 

내 정답 코드

import Foundation

func solution(_ n:Int, _ control:String) -> Int {
    var result = n
    
    for char in control {
        switch char {
        case "w":
            result += 1
        case "s":
            result -= 1
        case "d":
            result += 10
        case "a":
            result -= 10
        default:
            break
        }
    }
    return result
}

 

#

1. control을 한 문자씩 확인하면서 각 문자에 맞게 result값을 계산한다.

 

@ 다른 사람 풀이에서 인상 깊었던 풀이

dictionary가 무엇인지는 알고 있었지만 이렇게 사용할 생각은 못해봤다.

dictionary와 reduce를 잘 활용한 방법 같다.

import Foundation

func solution(_ n:Int, _ control:String) -> Int {
    let op: [Character: Int] = ["w": 1, "s": -1, "d": 10, "a": -10]
    return n + control.reduce(0) { $0 + op[$1]! }
}

배운 기술

 

https://developer.apple.com/documentation/swift/dictionary

 

Dictionary | Apple Developer Documentation

A collection whose elements are key-value pairs.

developer.apple.com

'프로그래머스 (Swift) > 기초' 카테고리의 다른 글

[Day6-4] 수열과 구간 쿼리 3  (0) 2024.02.09
[Day6-3] 수 조작하기2  (0) 2024.02.09
[Day6-1] 마지막 두 원소  (0) 2024.02.09
[Day5-5] 이어 붙인 수  (0) 2024.02.02
[Day5-4] 원소들의 곱과 합  (0) 2024.02.02