dev._.note

[프로그래머스] SWIFT 0단계 음양더하기 본문

Dev/코딩테스트

[프로그래머스] SWIFT 0단계 음양더하기

Laena 2023. 11. 2. 21:16

음양 더하기

어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 return 하도록 solution 함수를 완성해주세요.

 

풀이

import Foundation

func solution(_ absolutes:[Int], _ signs:[Bool]) -> Int {

    return zip(absolutes, signs).reduce(0) { 
        $0 + ( $1.1 ? $1.0 : -$1.0 )
    }
}

 

1. zip함수를 통해 bool배열은 튜플로 변경 된 상태.

2. $1은 zip 함수로 만들어진 튜플인데 $1.1은 bool 값이 들어있고 $1.0은 int 값이기 때문에

삼항연산자로 $1.1이 참 일때는 $1.0의 int 값을 양수로 합산, $1.1이 거짓 일때는 $1.0의 int 값을 음수로 합산

3. $1은 reduce 후행클로저 단축인자로써 zip 함수로 만들어진 튜플이기 때문에 $1.1은 항상 Bool 값이고 $1.0은 항상 Int 값이여서 삼항연산자로 +, -를 결정.