본문 바로가기

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

[Day6-3] 수 조작하기2

문제

 

내 정답 코드

func solution(_ numLog:[Int]) -> String {
    
    var result = ""
    
    for i in 0..<numLog.count {
        if i != 0 {
            switch numLog[i] - numLog[i-1] {
                case 1:
                    result += "w"
                case -1:
                    result += "s"
                case 10:
                    result += "d"
                case -10:
                    result += "a"
                default:
                    break
            }
        }
    }
    return result
}

 

#

1. 배열의 수만큼 반복문을 돌린다.

2. 0이 아닌 인덱스에서 i번째에서 i-1번째의 값을 빼고

3. 뺀 값을 보고 문자열을 만들어간다.

 

@ 저번 문제에서 사용했던 dictionary를 사용해서 더 짧은 코드를 짜보았다.

import Foundation

func solution(_ numLog:[Int]) -> String {
    
    let dic = [1:"w", -1:"s", 10:"d", -10:"a"]
    
    return (1..<numLog.count).map { numLog[$0] - numLog[$0-1] }.reduce("") { $0 + dic[$1]! }
}

배운 기술

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

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