문제 설명
어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 return 하도록 solution 함수를 완성해주세요.
https://programmers.co.kr/learn/courses/30/lessons/76501
다른 사람의 풀이
func solution(_ absolutes:[Int], _ signs:[Bool]) -> Int {
return zip(absolutes, signs).map({ $1 ? $0 : -1 * $0 }).reduce(0, +)
}
zip() 함수를 이번에 알게 되었다. 두개의 시퀀스를 쌍으로 만들어주는 함수이다.
import Foundation
func solution(_ absolutes:[Int], _ signs:[Bool]) -> Int {
var answer = 0
for i in 0..<signs.count {
answer += signs[i] == true ? absolutes[i] : -absolutes[i]
}
return answer
}
fon in 구문으로 푼 사람도 있었다. 익숙해지고 다른 코테에서 꼭 써보고 연습해야겠다.
소감
reduce(), map()까지는 떠올랐지만, 두개의 어레이를 비교하는 것에서 막혀서 답안을 본 문제이다.
zip과 for 등 코테에서 유용하게 쓸 수 있을 것들을 배우게 되었다.
참고:
https://babbab2.tistory.com/95
'Coding Test' 카테고리의 다른 글
Programmers.K번째수 (Swift) (0) | 2022.03.29 |
---|---|
Programmers.없는 숫자 더하기 (Swift) (0) | 2022.03.28 |
Progammers.로또의 최고 순위와 최저 순위 (Swift) (0) | 2022.03.28 |
Programmers.숫자 문자열과 영단어 (Swift) (0) | 2022.03.28 |
Programmers.신규 아이디 추천 (Swift) (0) | 2022.03.28 |
댓글