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 | 31 |
Tags
- 프로그래머스
- 백준
- flexbox
- 기사퍼스트
- prettier
- github
- 카카오맵
- flexbox/grid 적용 여부
- 정보처리기사실기
- 조건부 스타일링
- 정보처리기사필기
- froggy
- 테스트 코드
- react 상태 관리 라이브러리
- position
- justify-content: center;
- error
- Flexbox Froggy
- Redux
- 모듈 관리
- REACT
- login button 컴포넌트
- 정보처리기사
- flex item
- JWT
- 홍달쌤
- git revert
- createstore 취소선
- flex container
- input 컴포넌트
Archives
- Today
- Total
minyoung
타겟 넘버 - DFS/BFS [프로그래머스 고득점 Kit] 본문
https://school.programmers.co.kr/learn/courses/30/lessons/43165
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
DFS, BFS란 ?
DFS(Depth-First Search)와 BFS(Breadth-First Search)는 그래프 탐색 알고리즘 중 가장 기본적인 두 가지 방법이다.
이 둘은 각각 다른 방식으로 그래프를 탐색합니다.
DFS (깊이 우선 탐색)
DFS는 그래프의 깊은 부분을 우선적으로 탐색하는 알고리즘이다. 특정 노드에서 시작하여 다음 분기로 넘어가기 전에 해당 분기를 완벽하게 탐색한다. 이러한 방식으로 깊이를 우선하여 탐색하기 때문에 스택(Stack) 자료구조를 사용한다. 재귀(Recursion)를 이용하여 구현할 수도 있다.
BFS (너비 우선 탐색)
BFS는 그래프의 가까운 부분을 우선적으로 탐색하는 알고리즘이다. 특정 노드에서 시작하여 해당 노드와 인접한 모든 노드를 우선 탐색한다. 이후에는 해당 인접 노드들부터 다시 너비 우선 탐색을 진행한다. 이러한 방식으로 너비를 우선하여 탐색하기 때문에 큐(Queue) 자료구조를 사용한다.
차이점
- 탐색 방식: DFS는 깊이를 우선하여 탐색하고, BFS는 너비를 우선하여 탐색한다.
- 자료구조: DFS는 스택(Stack) 또는 재귀(Recursion)를 통해 구현되며, BFS는 큐(Queue)를 사용한다.
- 탐색 시간: DFS는 깊이를 탐색하기 때문에 깊은 부분을 우선 탐색하므로 목표 노드가 깊은 부분에 있는 경우 효율적이다. 반면 BFS는 가까운 부분을 먼저 탐색하기 때문에 목표 노드가 깊은 부분에 있을 때까지 모든 노드를 탐색해야 할 수 있으나, 목표 노드가 깊지 않은 경우 효율적이다.
DFS와 BFS는 각각의 장단점이 있으며, 문제의 특성에 따라 적합한 알고리즘을 선택하여 사용해야 한다.
이 문제 풀이는 DFS를 활용한다.
function solution(numbers, target) {
var answer = 0;
dfs(0,0);
function dfs(index,sum){
if(index === numbers.length){
if(sum === target){
answer++;
}
return;
}
dfs(index+1, sum + numbers[index]);
dfs(index+1, sum - numbers[index]);
}
return answer;
}
'프로그래머스' 카테고리의 다른 글
완전탐색 - 최소직사각형 (0) | 2024.05.02 |
---|---|
스택/큐 - 같은 숫자는 싫어[프로그래머스 고득점 Kit] (0) | 2024.05.02 |
해시 - 폰켓몬 [코딩테스트 고득점 Kit] (0) | 2024.05.02 |
프로그래머스 모의 테스트 - 순열 검사 (0) | 2024.05.01 |
프로그래머스 모의 테스트 - 자릿수 더하기 (0) | 2024.05.01 |