일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- UserDefaults
- 인프런
- Swift
- 상호배제
- Linked List
- forEach
- 프로세스 스케줄링
- 데드락
- SwiftUI
- Codable
- @state
- struct
- 앨런
- IOS
- 100 days of SwiftUI
- async
- 운영체제
- 동시성
- 알고리즘
- 가상 메모리
- decode
- 동기화
- 오브젝트
- Apple Developer Academy
- scrollview
- 비동기
- Algorithm
- deadlock
- COLOR
- core data
Archives
- Today
- Total
목록백트래킹 (1)
기어가더라도 제대로
[알고리즘 스터디 with 케이시] 백트래킹
정의 모든 경우의 수를 탐색하는 알고리즘 DFS나 BFS를 이용할 수 있다. 효율을 위해 탐색하지 않아도 되는 곳을 미리 막는 것을 가지치기(Pruning)라고 한다. 자바스크립트는 재귀 효율이 나쁘기 때문에 DFS를 구현할 경우 스택을 이용하는 것이 좋다. 코딩 테스트에선 이를 고려하여 재귀로 작성해도 풀 수 있도록 문제를 제출하는 경우도 있다. 탐색에서 순환(Cycle)이 발생할 수 있다면 BFS를 이용하는 것이 편하다. DFS, BFS 정말 많이 나오는데 코테를 풀 때는 꼭알고 있어야하는 개념이다. 백트래킹의 핵심은 가지치기! 가지치기를 얼마나 잘하느냐가 효율성을 좌우한다. 어떻게 작성할 것인가? 우선, 모든 경우의 수를 찾을 수 있도록 코딩 이후 문제에서 특정한 조건을 만족하는 것만 탐색하고 나머..
CS/자료구조
2022. 8. 6. 09:04