[프로그래머스 코딩테스트 연습문제] 삼총사 | 알고리즘 설명 & 문제 풀이 with 자바스크립트(Javascript)

Re_Go·2023년 12월 12일
0

코딩테스트연습

목록 보기
24/106
post-thumbnail

1. 문제 설명

2. 제한 사항

3. 입출력 예

4. 입출력 예 설명

5. 첫번째 문제 풀이(2023-12-12)

배열의 모든 요소를 순회하며 값을 찾는 문제인데, 무식한 방법일 수 있겠지만 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;
}
profile
인생은 본인의 삶을 곱씹어보는 R과 타인의 삶을 배워 나아가는 L의 연속이다.

0개의 댓글