프로그래머스 - 삼총사

윤민선·2026년 7월 19일

프로그래머스

목록 보기
48/65

문제 설명

학생들의 정수 번호가 담긴 배열 number가 주어진다.

이 중에서 서로 다른 학생 3명을 선택했을 때, 세 학생의 번호의 합이 0이 되는 경우의 수를 구하는 문제이다.


접근 방법

세 명의 학생을 선택해야 하므로 모든 조합을 확인하면 된다.

중복 없이 3명을 선택하기 위해 3중 반복문을 사용한다.

반복문의 시작 인덱스를 다음과 같이 설정해서 같은 조합을 여러 번 선택하는 것을 방지한다.

  • 첫 번째 학생: i
  • 두 번째 학생: j = i + 1
  • 세 번째 학생: k = j + 1

선택한 세 학생의 번호를 더한 값이 0이라면 정답을 1 증가시킨다.


풀이 순서

  1. 경우의 수를 저장할 answer를 0으로 초기화한다.
  2. 첫 번째 학생을 선택한다.
  3. 첫 번째 학생 다음부터 두 번째 학생을 선택한다.
  4. 두 번째 학생 다음부터 세 번째 학생을 선택한다.
  5. 세 학생의 번호의 합이 0이면 answer를 1 증가시킨다.
  6. 모든 조합을 확인한 후 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;
    }
}

0개의 댓글