알고리즘
[Swift 알고리즘] - 음양 더하기 (Programmers)
Peppo
2022. 10. 20. 09:18
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