본문 바로가기
알고리즘/DFS

항해99 24일차 TIL( 타겟 넘버 / 프로그래머스)

by 순원이 2024. 4. 21.

문제         

 

프로그래머스

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

programmers.co.kr

1 번째 시도   

  • DFS 이용
  • 마지막 노드까지 도착했을 때 타켓 숫자면 카운팅
  • DFS 파라미터에 들어가야 할 것들
    • DFS 실행시킬 배열
    • 깊이
    • 타켓 넘버
    • 이전합
//dfs로 플러스 마이너스 다 붙여가며 해당 숫자 카운트

import java.util.*;

class Solution {
    int answer = 0;
    public int solution(int[] numbers, int target) {
        dfs(numbers, 0, target, 0);
        return answer;
    }
    
   
    void dfs(int[] numbers, int depth, int target, int exSum) {

        if(depth == numbers.length) {
            if(target == exSum) {
                answer++;
            }
        }
        else {
            dfs(numbers,depth+1, target, exSum+numbers[depth]);
            dfs(numbers,depth+1, target, exSum-numbers[depth]);
        }
    }
}

 

 

배움

  • dfs는 꼭 for 문을 사용해야 한다는 잘못된 생각을 깨줌

 

 

 

 

'알고리즘 > DFS' 카테고리의 다른 글

[백준] 적록색약/자바  (0) 2024.05.05
[백준] 트리/자바  (0) 2024.05.04
[백준] DFS와 BFS/자바  (0) 2024.05.03
[프로그래머스] 미로 탈출 명령어 / 자바  (0) 2024.04.24
[프로그래머스] 네트워크 / 자바  (0) 2024.04.22