알고리즘 공부
프로그래머스 타겟넘버(복습)
컴퓨터과학
2023. 10. 19. 23:57
https://school.programmers.co.kr/learn/courses/30/lessons/43165?language=java
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
자바로 풀엇고 dfs 문제입니다. 쉽네요
import java.util.*;
class Solution {
public static int[] gnumbers;
public static int gtarget;
public static boolean[] gbCheck;
public static int gcnt=0;
public Solution(){
}
public void dfs(int k,int sum,int cnt){
if(cnt>=gnumbers.length){
if(sum==gtarget){
gcnt++;
}
return ;
}
dfs(k+1 , sum + gnumbers[k] , cnt+1 );
dfs(k+1 , sum - gnumbers[k] , cnt+1 );
return;
}
public int solution(int[] numbers, int target) {
int answer = 0;
Solution s=new Solution();
gnumbers=numbers;
boolean[] bCheck=new boolean[gnumbers.length];
gbCheck=bCheck;
gtarget=target;
s.dfs(0,0,0);
answer=gcnt;
return answer;
}
}