728x90
반응형
2022.02.13
83번째 포스팅
입사 343일차.
코테 문제풀이 13주차 1번 문제
0. 문제
① 깊이/너비 우선 탐색(DFS/BFS) : 타겟 넘버
② 설명
문제설명 n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. 제한사항
|
③ 링크
1. 접근방법
생각해낸 방법은 1가지
① dfs 깊이우선탐색
2. 풀이
① 접근방법 : ①
② 풀이
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
|
class Solution {
static int answer = 0;
public int solution(int[] numbers, int target) {
// 1. dfs탐색 초기값 설정
int loop = 0, sum = 0;
// 2. dfs 시작
targetNumberSearch(numbers, target, loop, sum);
return answer;
}
public void targetNumberSearch(int[] numbers, int target, int loop, int sum) {
// 4. 탐색횟수가 원하는 만큼의 횟수(배열의 길이)에 도달하는지 체크
if (loop == numbers.length) {
// 5. 타겟넘버와 sum이 같으면 1을, 그 외의 경우에는 0을 더해준다.
int answerChck = sum == target ? 1 : 0;
answer += answerChck;
} else {
// 3. 탐색횟수(loop)를 늘려가면서 재귀
targetNumberSearch(numbers, target, loop + 1, sum + numbers[loop]);
targetNumberSearch(numbers, target, loop + 1, sum - numbers[loop]);
}
}
}
|
cs |
3. 결과
4. 주의사항
728x90
반응형
'코딩테스트' 카테고리의 다른 글
[코테/JAVA] Summer/Winter Coding(~2018) : 소수 만들기 (0) | 2022.03.06 |
---|---|
[코테/JAVA] 완전탐색 : 소수 찾기 (0) | 2022.02.27 |
[코테/JAVA] 그래프: 가장 먼 노드 (2) | 2022.02.06 |
[코테/JAVA] 2018 KAKAO BLIND RECRUITMENT: [1차] 비밀지도 (0) | 2022.01.24 |
[코테/JAVA] 2022 KAKAO BLIND RECRUITMENT : 신고 결과 받기 (0) | 2022.01.23 |
댓글