티스토리 뷰
Oops, All Code!/🤯 Oops, My Algorithm!
( ु ´͈ ᵕ `͈ )ु JS:: 백트래킹(Backtracking) 알고리즘과 완전탐색 알고리즘
밍동망동 2024. 7. 26. 18:39백트래킹(Backtracking) 개념
가능한 모든 해결책을 탐색하면서 조건에 맞지 않으면 돌아가 다시 시도한다.
문제 해결을 위한 모든 경우의 수를 고려하는 동시에,
조건에 맞지 않는 경로라면 더 이상 진행하지 않는 방식을 채택해 효율성을 높인다.
미로에서 출구를 찾는 과정을 상상해보자.
갈림길에서 길을 선택하다가 막다른 길에 도달하면 되돌아와 다른 길을 시도한다.
※ Backtrack은 '되돌아'라는 의미이다.
동작방식
1. 하나를 선택한다.
2. 선택한 길이 유효한지 검사한다.
3. 유효하다면 다음 결정 지점으로 이동한다.
4. 유효하지 않다면, 이전 결정 지점으로 돌아가 다른 선택을 한다.
사용하는 경우
모든 경우의 수를 고려하면서도 불필요한 경로를 배제하기 때문에 문제를 효율적으로 해결할 수 있다.
가능한 해결책의 수가 많을 때 유용하다.
백트래킹(Backtracking)과 완전탐색
두 알고리즘 모두 가능한 모든 경우의 수를 탐색하는 것은 동일하지만,
완전탐색은 제약조건이 없는 반면 백트래킹은 조건에 맞지 않는 경로는 중간에 포기하고
이전 단계로 돌아가는 점에서 차이가 있다.
'Oops, All Code! > 🤯 Oops, My Algorithm!' 카테고리의 다른 글
| CT Sprint를 마치며···. (0) | 2024.07.26 |
|---|---|
| ( ु ´͈ ᵕ `͈ )ु JS:: 이 언어에서 sort를 힙(Heap)으로 대체해야할 때 (0) | 2024.07.25 |
| ꒰ྀི 16. 프로그래머스:: 전화번호 목록 (0) | 2024.07.25 |
| ꒰ྀི 15. 프로그래머스:: H-Index (0) | 2024.07.25 |
| ( ु ´͈ ᵕ `͈ )ु JS:: 코딩테스트를 위한 완전탐색과 탐욕법 (0) | 2024.07.24 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 프리코스
- 책추천
- 트러블슈팅
- js
- 소사벌맛집
- typescript
- 어른의어휘공부
- javascript
- 어휘력
- 소사벌
- 경험플리마켓
- 코딩테스트
- react
- 부스트캠프
- 일급객체
- 안성스타필드
- 프로토타입
- 대학생플리마켓
- 대학생팝업스토어
- 회고
- 우아한테크코스
- 서평
- 비즈플리마켓
- 도서리뷰
- 네이버부스트캠프
- 카드뉴스
- 웹풀스택
- 도서추천
- 카페추천
- 프론트엔드
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
글 보관함