관리 메뉴

Tree's 개발일기

[자바] 타겟넘버 본문

문제풀이/프로그래머스

[자바] 타겟넘버

tree0123 2023. 7. 29. 11:12
728x90

https://school.programmers.co.kr/learn/courses/30/lessons/43165

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

전형적인 깊이우선탐색 유형이다.

깊이를 우선으로 탐색하면서 모든 경우의 수를 조합해서 숫자를 만들어 내는 문제이다. 

 

depth가 끝까지 돌았고, sum과 target number가 같으면 answer+1하고, return;

만약끝까지 돌지 않았다면 +도 해보고 -도 하면서 숫자를 조합해본다. 

 

class Solution {
    public static int answer=0;
    public int solution(int[] numbers, int target) {
        dfs(numbers, target, 0,0);
        return answer;
    }
    
    public void dfs(int[] numbers, int target, int depth, int sum) {
        if (depth==numbers.length) {
            if (sum==target) {
                answer++;
            }
            return;
        }
        dfs(numbers, target, depth+1, sum+numbers[depth]);
        dfs(numbers, target, depth+1, sum-numbers[depth]);

    }
}
728x90

'문제풀이 > 프로그래머스' 카테고리의 다른 글

[자바]N개의 최소공배수  (0) 2023.07.29
[자바] 방금그곡  (0) 2023.07.29
[자바] JadenCase 문자열 만들기  (0) 2023.07.28
[자바] 거리두기 확인하기  (0) 2023.07.27
[자바] 숫자변환하기  (0) 2023.07.24
Comments