
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);
}
}
}
- DFS사용법 이해
- 필요한 변수 전역 선언
- 탈출조건
- if (depth == 3)
- 탈출 아닐시 내용
- Dfs(i+1, depth+1)