Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 2748 자바
- 자바 28278
- 백준 28278 자바
- 10807 자바
- 10810 자바
- 자바 10866
- 티움투어
- 10813 자바
- 코딩테스트
- 2798 자바
- 자바 2164
- 백준
- 1764 자바
- 파이썬
- 1010 자바
- dfs
- 백준 1764 자바
- BFS
- IAM Identity Center
- 백준 2346 자바
- 2346 풍선 터뜨리기
- 자바 1003
- 2164 자바
- 데보션영 3기
- 28278 스택 2
- 그리디
- IAM 사용자
- 자바
- 백준 10866 자바
- 자바 2346
Archives
- Today
- Total
자두의 데브로그
[자바] 프로그래머스 타겟 넘버 본문
https://school.programmers.co.kr/learn/courses/30/lessons/43165
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
내가 작성했던 블로그 보니까 과거에 파이썬으로 코테 준비했을 때의 내용만 있길래 자바로 다시 풀고 올린다.
거의 다 맞췄는데 무한루프 돌길래 이상해서 찾아보니 진짜 이상한 짓을 하고 있었다.
어차피 depth가 인덱스 역할을 해주고 있는 건데 for문으로 dfs 함수 안에서 또 numbers[i]번째의 값과 더하거나 빼는 방식을 추가해버려서 처음에는 틀렸었다. 그리고 return의 위치!!!! return은 depth랑 numbers 배열의 원소 개수와 같아지면 무조건 return을 해야되는데 아무 생각 없이 target이랑 x가 같을 때만 return하게 코드를 작성해서 계속 틀렸었다. 그러나 이 부분 수정하니 바로 정답!
다른 날 다시 풀어보자 ^^
class Solution {
public static int answer = 0;
public int solution(int[] numbers, int target) {
dfs(numbers, 0, 0, target);
return answer;
}
public static void dfs(int[] numbers, int depth, int x, int target){
if(depth == numbers.length){
if(target == x){
answer++;
}
return;
}
dfs(numbers, depth+1, x+numbers[depth], target);
dfs(numbers, depth+1, x-numbers[depth], target);
}
}
'코딩테스트 > Java' 카테고리의 다른 글
[자바] 프로그래머스 게임 맵 최단거리 (1) | 2024.10.17 |
---|---|
[자바] 프로그래머스 네트워크 (0) | 2024.10.17 |
[자바] 백준 5568번 카드 놓기 (0) | 2024.10.17 |
[자바] 백준 18511번 큰 수 구성하기 (1) | 2024.10.17 |
[자바] 백준 7562번 나이트의 이동 (0) | 2024.10.15 |