코딩테스트

프로그래머스 | 삼총사 | Kotlin

다시은 2024. 1. 25. 10:08

 

 

배열에서 세 요소의 합이 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씩 더해줬다.

 

 

 


힌트없이 혼자 생각해서 통과한게  오랜만이다 🥲🥲