배열의 모든 요소를 순회하며 값을 찾는 문제인데, 무식한 방법일 수 있겠지만 3중 for문을 사용하여 해당 문제를 풀었습니다.
만약 3중첩 for문을 적게 될 경우 초기 인덱스 값은 [i](배열의 첫번째 요소), [i+1](배열의 두번째 요소), [j+1] (배열의 세번째 요소)로 선택될텐데, 이때 배열의 3개의 요소를 더하는 모든 상황을 그려보면 다음과 같습니다.
즉 각 배열을 순회하면서모든 수를 곱하는데, 세 수를 곱하지 못하는 경우(배열의 범위 내의 경우) 해당 인덱스의 for문 루프가 종료되는 특징 또한 가지고 있습니다.function solution(number) { let addNumber = 0; // 세 값을 더할 변수 let count = 0; // 삼총사가 되는 횟수를 카운트 할 변수 for (let i = 0; i < number.length; i++) { // 첫번째 for문 for (let j = i + 1; j < number.length; j++) { // 두번째 for문 for (let k = j + 1; k < number.length; k++) { // 세번째 for문 addNumber = number[i] + number[j] + number[k]; //각 배열의 세 값들을 더합니다. count += (addNumber === 0) ? 1 : 0; // 삼항 연산자를 사용하여 세 값을 더한 결과가 0이라면 count에 1을 누적 반환하고, 아닐 경우 0(사실상 변화 없음)을 누적 반환시킵니다. } } } return count; }