자료구조&알고리즘/Level1
삼총사
제로칼로리
2023. 4. 19. 23:34
문제
https://school.programmers.co.kr/learn/courses/30/lessons/131705
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
코드
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이 되는지만 체크하면 된다.