본문 바로가기
알고리즘 문제/프로그래머스_Lv1 도장깨기

[프로그래머스] 삼총사 (Javascript)

by 스코필 2025. 1. 8.

문제 링크

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

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

문제 설명

학생들은 각자 정수 번호를 갖고 있습니다. 이 학교 학생 3명의 정수 번호를 더했을 때 0이 되면 3명의 학생은 삼총사라고 합니다. 

학생들의 번호를 나타내는 정수 배열 number가 매개변수로 주어질 때, 학생들 중 삼총사를 만들 수 있는 방법의 수를 리턴하도록 함수를 완성하세요.

제한 사항

  • 3 <= number의 길이 <= 13
  • -1,000 <= number의 각 원소 <= 1,000
  • 서로 다른 학생의 정수 번호가 같을 수 있습니다.

 

풀이

재귀함수를 이용하여 number의 3개의 요소에 대한 조합을 완성하여,

3개의 요소의 합이 0이 되는 조합을 찾아 답을 구했다.

 

✅ Code - 성공

function solution(number) {
    var answer = 0;
    
    function combination(lst, idx) {
        if (lst.length === 3) {
            answer += !(lst.reduce((acc, cur) => acc + cur, 0)) && 1;
            return
        }
        
        for (let i = idx; i < number.length; i++) {
            combination([...lst, number[i]], i + 1);
        }
    }
    
    combination([], 0);
    
    return answer;
}