Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

kkb00714/Algorithm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

241 Commits

Repository files navigation

Algorithm

---- 백업 해두기 백준, 인프런

(注記) 0529 => 파이썬 알고리즘 복습

1. 이진 탐색 알고리즘
- 순차 탐색 : 리스트 안에 있는 특정한 데이터를 찾기 위해 앞에서부터 데이터를 하나씩 확인
- 이진 탐색 : 정렬되어 있는 리스트에서 탐색 범위를 절반씩 좁혀가며 데이터를 탐색
 => 시작점, 중간점, 끝점을 이용하여 범위를 설정
 => 단계마다 탐색 범위를 2로 나누는 것과 동일하므로 연산 횟수는 log2 N 에 비례.
 
 => 따라서, 시간 복잡도는 O(log N)을 보장

(注記) 0610

2. 그리디 알고리즘 (탐욕법)
- 현재 상황에서 가장 좋은 것만을 고르는 방법 의미
 => 단순히 가장 좋아 보이는 것을 반복적으로 선택해도 최적의 해를 구하도록 검토
(注記) 대부분의 그리디 문제는 얻은 해가 최적의 해가 되는 상황에서 이를 추론할 수 있어야 풀리도록 함
시뮬레이션과 완전탐색
(注記) 구현 문제 유형 
 => 풀이를 떠올리는 것은 쉽지만 소스코드로 옮기기 어려운 문제
 특히 2번과 같은 경우는 비슷한 예제 문제를 많이 해결해볼 것.
 꼭 알고리즘을 온전히 해결하려는 것보단 힌트나 정답 코드를 잘 이해하는 것이 더 중요.
1) 일반적으로 알고리즘 문제에서의 2차원 공간은 행렬의 의미로 사용되므로, 알고 있어야 하는 개념!
2) 시뮬레이션 및 완전 탐색 문제에서는 2차원 공간에서의 방향벡터가 자주 활용됨!

(注記) 0704 그래프 탐색 알고리즘 (DFS/BFS)

3. DFS/BFS 알고리즘
- 스택(선입후출, LIFO), 큐(선입선출, FIFO)와 연관이 있다. 
- 재귀 함수(Recursive Function) : 자기 자신을 다시 호출하는 함수
- DFS (Depth-First Search) 
=> 깊이 우선 탐색, 그래프에서 깊은 부분을 우선적으로 탐색하는 알고리즘으로,
스택 자료구조 혹은 재귀 함수를 이용함.
 
 1) 탐색 시작 노드를 스택에 삽입하지 않고 방문 처리
 
 2) 스택의 최상단 노드에 방문하지 않은 인접 노드가 하나라도 있으면,
 그 노드를 스택에 넣고 방문처리 (방문하지 않은 인접 노드가 없으면 스택에서 최상단 노드를 꺼냄)
 3) 2번의 과정을 수행할 수 없을 때까지 반복
- BFS (Breadth-First Search)
=> 너비 우선 탐색, 그래프에서 가까운 노드부터 우선적으로 탐색하는 알고리즘으로,
큐 자료구조를 이용
 1) 탐색 시작 노드를 큐에 삽입하고 방문 처리
 2) 큐에서 노드를 꺼낸 뒤에 해당 노드의 인접 노드 중에서 방문하지 않은 노드를 모두 큐에 삽입하고 방문처리
 3) "

(注記) 12/20 재시작

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

AltStyle によって変換されたページ (->オリジナル) /