문제 풀이/프로그래머스

[Programmers] Lv1. 삼총사 (JavaScript)

hyundol97 2023. 4. 26. 16:34

문제

 

 


 

 

풀이

1차

function solution(number) {
    let result = 0;
    
    for (let i = 0; i < number.length; i++) {
        for (let j = i+1; j < number.length; j++) {
            for (let k = j+1; k < number.length; k++) {
                if(number[i] + number[j] + number[k] === 0) {
                    result++;
                }
            }
        }
    }
    
    return result;
}

 

 

2차

function solution(number) {
    let result = 0;
    
    function dfs(idx, count, sum) {
        if (idx > number.length) {
            return;
        }
        if (count === 3) {
            if (sum === 0) {
                result++;
            }
            return;
        }
        dfs(idx + 1, count + 1, sum + number[idx]);
        dfs(idx + 1, count, sum);
    }
    dfs(0, 0, 0);
    
    return result;
}

 

 


 

리뷰

  • 재귀함수 연습 필요
  • 코드 효율성 고려 필요 (시간복잡도)