프로그래머스 Level 2. 타겟 넘버 (Java)알고리즘/프로그래머스2023. 7. 23. 23:12
Table of Contents
반응형
문제 링크
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이 코드
class Solution {
public int solution(int[] numbers, int target) {
int answer = dfs(0, 0, numbers, target);
return answer;
}
private int dfs(int depth, int sum, int[] numbers, int target) {
if(depth == numbers.length) {
if (sum == target) return 1;
else return 0;
}
return dfs(depth+1, sum + numbers[depth], numbers, target) +
dfs(depth+1, sum - numbers[depth], numbers, target); //더하거나, 빼거나
}
}
❗ 풀이 방법
numbers의 배열을 원소 하나 당 할 수 있는 경우의 수는 더하거나, 빼거나 2가지이다.
따라서, depth를 하나씩 늘려가며 재귀를 호출하고 depth가 numbers의 길이만큼 재귀가 호출되었을 때 만들어진 sum을 target과 비교하여 1 또는 0을 return해주었다.
🙂 새로 알게된 점
- 재귀 호출 방식을 머릿속에서 이해한다면 쉽게 풀 수 있는 문제이다.
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
프로그래머스 Level 2. 올바른 괄호 (Java) (0) | 2023.07.20 |
---|---|
프로그래머스 Level 2. 시소 짝꿍 (Java) (0) | 2023.07.20 |
프로그래머스 Level 2. 기능 개발 (Java) (0) | 2023.07.20 |
@Caffeine Developer :: 개발스토리
개발을 하며 만났던 문제들과 해결 과정, 공부한 내용 등을 기록합니다.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!