알고리즘 기초 - 정렬
·
My Study/Algorithm
이번 게시물에서는 꼭 알아야 할 선택 정렬, 삽입 정렬, 퀵 정렬, 병합 정렬, 계수 정렬에 대해서 설명하겠습니다. ​ - 선택 정렬 1) 선택 정렬(Selection Sort)이란? 선택 정렬은 여러 개의 데이터가 무작위로 있을 때, 값이 가장 작은 데이터를 선택해 가장 앞에 있는 데이터와 교체하고, 두번째로 값이 작은 데이터를 선택해 앞에서 두번째로 작은 테이터와 바꾸는 과정을 반복하는 알고리즘입니다. 2) 정렬 예시 위 그림은 무작위 데이터인 [7, 5, 9, 0, 3, 1, 6, 2, 4, 8]의 입력에 대해 선택 정렬을 수행하는 그림입니다. 위의 과정을 마지막 입력에 도착할 때 까지 반복해주면 됩니다! 이를 코드로 작성하면 ! inputlist = [7, 5, 9, 0, 3, 1, 6, 2, 4..
알고리즘 기초 - DFS/BFS
·
My Study/Algorithm
- DFS 란? 정의! 깊이 우선 탐색(Depth-First Search), 그래프에서 깊은 부분을 우선적으로 탐색하는 알고리즘입니다. 최대한 깊이 내려간 뒤, 더 이상 깊이 갈 곳이 없을 경우 옆으로 이동합니다. 동작 과정! DFS에서는 스택을 사용합니다. 1. 시작 노드를 스택에 삽입 하고 방문 처리 해줍니다. 2. 스택의 최상단 노드에 방문하지 않은 이웃 노드가 있다면 그 노드를 스택에 넣어주고 방문처리해줍니다. 그렇지 않으면 스택의 최상단 노드를 꺼내줍니다. 3. 방문하지 않은 노드가 존재하지 않아, 더 이상 수행할 수 없을 때 까지 2번의 과정을 반복 수행해줍니다. 아래 그래프로 예를 들어보겠습니다. 위와 같은 그래프가 있을 때, 탐색 순서는 1-2-7-6-8-3-4-5입니다. DFS는 단순 재..
알고리즘 기초 - 그리디
·
My Study/Algorithm
"그리디" 방법이란? 현재의 상황에서 지금 당장 좋은 것만 선택하는 방법입니다. 가장 좋아 보이는 것을 반복적으로 선택해도 최적의 해에 도달할 수 있을지 검토하는 정당성 분석이 가장 중요합니다. ​ 대표적인 문제 그리디를 이용해 해결할 수 있는 문제 중 가장 대표적인 문제로는 "1이 될 때까지" 문제가 있습니다. #어떠한 수 N이 1이 될 때까지 다음의 두 과정 중 하나를 반복적으로 선택하여 수행하려고 한다. #단, 두 번째 연산은 N이 K로 나누어떨어질 때만 선택할 수 있다. #1. N에서 1을 뺀다. #2. N을 K로 나눈다. #입력 예시: 17 4 #출력 예시: 2 def solution(n, k): c = 0 while True: if n%k == 0: n = n//k c +=1 else: n =..