티스토리 뷰
https://programmers.co.kr/learn/courses/30/lessons/43165?language=java
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
|
class Solution {
static int answer = 0;
public int solution(int[] numbers, int target) {
dfs(numbers, target, 0);
return answer;
}
public static void dfs(int[] numbers, int target, int node) {
if(node == numbers.length) {
int sum = 0;
for(int num : numbers) {
sum += num;
}
if(sum == target) {
answer++;
}
} else {
numbers[node] *= 1;
dfs(numbers, target, node+1);
numbers[node] *= -1;
dfs(numbers, target, node+1);
}
}
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
|
DFS, BFS에 대한 개념을 먼저 익히고 푸는게 좋은듯 싶다
(라고 상상함 하지만 어림도 없지ㅋㅋ 좀 더 익숙해지는 연습을 해야겠다...)
DFS는 stack, 재귀함수로 구현할 수 있고,
BFS는 queue로 구현 가능하다
이제 저걸 코드로 풀어서 응용만 하면 되는데 쉽지 않았다 (뇌굳남, 뇌가 굳어버린 남자)
1) DFS를 활용해 해당 node의 숫자를 (+), (-)로 배열에 넣어준다. (Tree로 보면 한쪽엔 (+), 다른쪽엔 (-))
2) node가 해당 배열까지 탐색했다면, numbers 배열을 다 더한다.
3) target과 비교해서 일치하면 카운트 +1, 아니면 다시 탐색 후 반복
'기초CS > 알고리즘' 카테고리의 다른 글
[프로그래머스] 알고리즘 연습 문제 : 주식가격 (자바/JAVA) (0) | 2019.12.01 |
---|---|
[프로그래머스] 알고리즘 연습 문제 : 프린터 (자바/JAVA) (0) | 2019.11.28 |
[프로그래머스] 알고리즘 연습 문제 : 쇠막대기 (자바/JAVA) (0) | 2019.09.06 |
[프로그래머스] 알고리즘 연습 문제 : 위장 (자바/JAVA) (0) | 2019.09.06 |
[Codility] Lesson 3 : FrogJmp (자바/JAVA) (0) | 2019.08.18 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 카카오인턴
- java
- 예매 알림
- 안드로이드 스튜디오
- 더 나은 내일
- 파이팅코리아
- 기능개발
- 문자열 내 마음대로 정렬하기
- Spring
- AWS
- 자바
- 완주하지 못한 선수
- FrogJmp
- 텔레그램
- 최솟값
- codility
- K번째수
- API
- 프로그래머스
- 스프링 부트
- 124 나라의 숫자
- json
- 알고리즘
- 객체지향과 디자인패턴
- 맵 api
- 타겟 넘버
- 다음 맵 api
- 쇠막대기
- cgv
- 노션트렐로광고X
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
글 보관함