학생들의 정수 번호가 담긴 배열 number가 주어진다.
이 중에서 서로 다른 학생 3명을 선택했을 때, 세 학생의 번호의 합이 0이 되는 경우의 수를 구하는 문제이다.
세 명의 학생을 선택해야 하므로 모든 조합을 확인하면 된다.
중복 없이 3명을 선택하기 위해 3중 반복문을 사용한다.
반복문의 시작 인덱스를 다음과 같이 설정해서 같은 조합을 여러 번 선택하는 것을 방지한다.
ij = i + 1k = j + 1선택한 세 학생의 번호를 더한 값이 0이라면 정답을 1 증가시킨다.
answer를 0으로 초기화한다.0이면 answer를 1 증가시킨다.answer를 반환한다.class Solution {
public int solution(int[] number) {
int answer = 0;
for (int i = 0; i < number.length - 2; i++) {
for (int j = i + 1; j < number.length - 1; j++) {
for (int k = j + 1; k < number.length; k++) {
if (number[i] + number[j] + number[k] == 0) {
answer++;
}
}
}
}
return answer;
}
}