class Solution {
fun solution(absolutes: IntArray, signs: BooleanArray): Int {
var answer: Int = 0
for((i,s) in signs.withIndex()){
for((ii, a) in absolutes.withIndex()) {
if(s == true && i == ii) {
answer += a
} else if ( s == false && i == ii ){
answer -= a
}
}
}
return answer
}
}
각각의 배열의 인덱스가 일치하는 경우 값을 더하거나 빼서 구했다.
줄이고 싶은데 방법을 모르겠다 🤨
다른 사람 풀이
class Solution {
fun solution(absolutes: IntArray, signs: BooleanArray) =
absolutes.foldIndexed(0) { idx, acc, num -> acc + if (signs[idx]) num else -num }
} ^누적 ^원소
저번에 봤던 fold 함수를 index와도 쓸 수 있구나
fold 메소드 참조
https://www.codevscolor.com/kotlin-fold-foldindexed-foldright-foldrightindexed
'코딩테스트' 카테고리의 다른 글
프로그래머스 | 없는 숫자 더하기 (0) | 2023.12.28 |
---|---|
프로그래머스 | 핸드폰 번호 가리기 (1) | 2023.12.27 |
프로그래머스 | 나누어 떨어지는 숫자 배열 (1) | 2023.12.26 |
프로그래머스 | 서울에서 김서방 찾기 (0) | 2023.12.26 |
프로그래머스 | 콜라츠 추측 (1) | 2023.12.22 |