문제
https://school.programmers.co.kr/learn/courses/30/lessons/131705
코드
class Solution {
static int [] chkArr = new int[3];//삼총사
static int [] intArr;
static int answer = 0;
public int solution(int[] number) {
intArr = number;
DFS(0,0);
return answer;
}
void DFS(int lv, int s) {
if(lv == 3) {
int sum = 0;
for(int x : chkArr) sum+=intArr[x];
if(sum == 0) answer++;
}else {
for(int i =s; i< intArr.length;i++ ) {
chkArr[lv] = i;
DFS(lv+1, i+1);
}
}
}
}
결과
테스트 1
입력값 〉 [-2, 3, 0, 2, -5]
기댓값 〉 2
실행 결과 〉 테스트를 통과하였습니다.
테스트 2
입력값 〉 [-3, -2, -1, 0, 1, 2, 3]
기댓값 〉 5
실행 결과 〉 테스트를 통과하였습니다.
테스트 3
입력값 〉 [-1, 1, -1, 1]
기댓값 〉 0
실행 결과 〉 테스트를 통과하였습니다.
경우의 수를 묻는 문제
경우의 수 마다 살짝 알고리즘을 더해 0이 되는지만 체크하면 된다.
'자료구조&알고리즘 > Level1' 카테고리의 다른 글
폰켓몬 (1) | 2022.10.15 |
---|---|
완주하지 못한 선수 (1) | 2022.10.12 |
숫자 문자열과 영단어 (0) | 2022.10.01 |
성격 유형 검사하기 (0) | 2022.09.26 |
신고 결과 받기 (0) | 2022.09.24 |