티스토리 뷰

1. 문제

https://school.programmers.co.kr/learn/courses/30/lessons/131705

2. 풀이

이 문제를 보자마자 떠올려야할 게 있다.

 

조합(Combination) 문제라는 것.

 

때문에 대략적인 시행 횟수를 예측할 수 있다.

주어진 조건을 보면 3 ≤number의 길이 ≤ 13 을 보면 최대 시행 횟수는 13C3 = 286인 걸 알 수 있다.

 

조건만 맞추면 다중 for문을 마음껏 써도된다는 뜻이다.

 

모든 조건을 탐색하기 때문에 Brute Force 문제라고도 할 수 있겠다.

3. 코드

class Solution {
    public int solution(int[] number) {
        int answer = 0;
        for(int i =0; i<number.length;i++) {
            for(int j = i+1; j<number.length;j++) {
                for(int k =j+1; k<number.length;k++) {
                    if(number[i]+number[j]+number[k] == 0) {
                        answer++;
                    }
                }
            }
        }
        return answer; 
    }
}

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함