배열에서 세 요소의 합이 0 이 되는 경우의 수를 찾는다.
내 풀이
class Solution {
fun solution(number: IntArray): Int {
var answer: Int = 0
if(number.size == 3 && number.sum() == 0) {
return 1
} else if (number.size == 3 && number.sum() !=0) {
return 0
}
for(i in 0..number.size-3) {
for(j in i+1 .. number.size-2) {
for(k in j+1 .. number.size-1) {
if(number[i]+number[j]+number[k] == 0) {
answer += 1
}
}
}
}
return answer
}
}
배열의 크기가 3인 경우는 for 문에 돌릴 필요가 없어서 제일 먼저 if 문으로 뺐다.
그리고 세 개의 for 문 중 첫번째는 인덱스 0부터 배열크기의 -3 인덱스까지
두 번째는 첫 인덱스 +1 부터 배열크기의 -2 인덱스까지
세 번째를 두 번째 인덱스 +1 부터 배열크기의 -1 인덱스까지
넣어서 합이 0인 경우에 answer 에 1씩 더해줬다.
힌트없이 혼자 생각해서 통과한게 오랜만이다 🥲🥲
'코딩테스트' 카테고리의 다른 글
프로그래머스 | 레벨0 | Kotlin (0) | 2024.02.02 |
---|---|
프로그래머스 | 레벨0 | Kotlin (0) | 2024.02.01 |
프로그래머스 | 최대공약수와 최대공배수 | Kotlin | 다시풀기 (1) | 2024.01.24 |
프로그래머스 | 제일 작은 수 제거하기 | Kotlin (1) | 2024.01.23 |
프로그래머스 | 3진법 뒤집기 | Kotlin (0) | 2024.01.19 |