티스토리 뷰

728x90

https://school.programmers.co.kr/learn/courses/30/lessons/76501

 

문제 사진

내 풀이

import Foundation

func solution(_ absolutes:[Int], _ signs:[Bool]) -> Int {
    var result: [Int] = []
    for (idx, el) in signs.enumerated() {
        el == true ? result.append(absolutes[idx]) : result.append(-absolutes[idx])
    }
    return result.reduce(0, { $0 + $1 })
}

solution([4, 7, 12], [true, false, true])
    • signs에서 false가 있는 index만 absolutes의 index로 접근해 ' - ' 로 바꾸기
    • 위 내용을 적용하고 총합 구하기 (reduce)

다른사람의 풀이

import Foundation

func solution(_ absolutes:[Int], _ signs:[Bool]) -> Int {
    return (0..<absolutes.count).map { signs[$0] ? absolutes[$0] : -absolutes[$0] }.reduce(0, +)
}

훨씬 더 깔끔하다

 

(0..<absolutes.count).map

이걸 index로 사용했다는점이 인상 깊었다. 

728x90