삼총사

108번뇌·2023년 1월 1일

class Solution {
    int cnt = 0;
    int arrSize;
    int[] sumArray = new int[3];
    int[] numArray;

    public int solution(int[] number) {
        arrSize = number.length;
        numArray = number;
        Dfs(0,0);

        return cnt;
    }

    private void Dfs(int startIndex, int depth)
    {
        if(depth == 3)
        {
            int sum = 0;
            for(int i=0; i<3; i++)
            {
                sum+=sumArray[i];
            }
            if (sum == 0) {
                cnt++;
            }
            return;
        }
        for (int i=startIndex; i<arrSize; i++)
        {
            sumArray[depth] = numArray[i];
            Dfs(i+1, depth+1);
        }
    }
}
  1. DFS사용법 이해
    • 필요한 변수 전역 선언
    • 탈출조건
      - if (depth == 3)
    • 탈출 아닐시 내용
      - Dfs(i+1, depth+1)
profile
내일 아침 눈을 떳을 때, '기대되는 오늘 하루를 만들기 위해' 나는 오늘도 생각하고 고민한다.

0개의 댓글