문제

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이 되는지만 체크하면 된다.

'자료구조&알고리즘 > Level1' 카테고리의 다른 글

폰켓몬  (1) 2022.10.15
완주하지 못한 선수  (1) 2022.10.12
숫자 문자열과 영단어  (0) 2022.10.01
성격 유형 검사하기  (0) 2022.09.26
신고 결과 받기  (0) 2022.09.24

+ Recent posts