이코테 5

[PART2]CH.09_최단 경로

- 다익스트라 최단 경로 알고리즘 다익스트라(Dijkstra) 최단 경로 알고리즘은 그래프에서 여러 개의 노드가 있을 때, 특정한 노드에서 출발하여 다른 노드로 가는 각각의 최단 경로를 구해주는 알고리즘이다. 다익스트라 최단 경로 알고리즘은 '음의 간선'이 없을 때 정상적으로 동작한다. 다익스트라 최단 경로 알고리즘은 기본적으로 그리디 알고리즘으로 분류된다. 매번 '가장 비용이 적은 노드'를 선택해서 임의의 과정을 반복하기 때문이다. 알고리즘의 원리를 간략히 설명하면 다음과 같다. 출발 노드를 설정한다. 최단 거리 테이블을 초기화한다. 방문하지 않은 노드 중에서 최단 거리가 가장 짧은 노드를 선택한다. 해당 노드를 거쳐 다른 노드로 가는 비용을 계산하여 최단 거리 테이블을 갱신한다. 위 과정에서 3, 4..

[PART2]CH.07_이진탐색

- 순차탐색 리스트 안에 있는 특정한 데이터를 찾기 위해 앞에서부터 데이터를 하나씩 차례대로 확인하는 방법이다. 보통 정렬되지 않은 리스트에서 데이터를 찾아야 할 때 사용한다. #코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 import sys def sequential_search(n, target, arr): for i in range(n): if arr[i] == target: return i+1 return -1 if __name__ == "__main__": input = sys.stdin.readline print('생성할 원소 개수를 입력한 다음 한 칸 띄고 찾을 문자열을 입력하세요.') input_data = input().split() n..

[PART2]CH.06_정렬

1. 기준에 따라 데이터를 정렬 정렬이란 데이터를 특정한 기준에 따라서 순서대로 나열하는것을 말한다. 정렬 알고리즘으로 데이터를 정렬하면 이진 탐색이 가능해진다. 즉 정렬 알고리즘은 이진 탐색의 전처리 과정이다. - 선택정렬 선택정렬은 가장 작은 데이터를 선택해 맨 앞에 있는 데이터와 바꾸고, 그다음 작은 데이터를 선택해 앞에서 두 번째 데이터와 바꾸는 과정을 반복하는 정렬. 즉, 매번 '가장 작은 것을 선택' 한다. #코드 1 2 3 4 5 6 7 8 9 10 arr = [7, 5, 9, 0, 3, 1, 6, 2, 4, 8] for i in range(len(arr)): min_idx = i # 가장 작은 원소의 인덱스 for j in range(i+1,len(arr)): if arr[min_idx] ..

[PART2] CH.05_DFS/BFS

1. 꼭 필요한 자료구조 기초 탐색이란 많은 양의 데이터 중에서 원하는 데이터를 찾는 과정을 의미한다. 프로그래밍에서는 그래프, 트리 등의 자료구조 안에서 탐색을 하는 문제를 자주 다룬다. 대표적인 탐색 알고리즘으로 DFS와 BFS를 꼽을 수 있다. 그런데 DFS와 BFS를 이해하기 위해서는 스택과 큐에 대한 이해가 전제되어야 하므로 사전 학습으로 스택과 큐, 재귀 함수를 먼저 알아보자. 자료구조란 '데이터를 표현하고 관리하고 처리하기 위한 구조'를 의미한다. 그중 스택과 큐는 자료구조의 기초 개념으로 다음의 두 핵심적인 함수로 구성된다. 삽입(push) : 데이터를 삽입한다. 삭제(pop) :데이터를 삭제한다. - 스택 : 후입선출(Last In Last Out : LIFO) 1 2 3 4 5 6 7 ..

목록 및 학습 계획

[학습 계획] 시작일 : 2021.06.08 ~ 학습 요일 : 매주_화, 목, 토 ===================== 2회 반복 ===================== PART02 : 주요 알고리즘 이론과 실전문제 - ch03 그리디 21.06.08 - ch04 구현 21.06.10 - ch05 DFS/BFS 21.06.14 - ch06 정렬 21.06.15 - ch07 이진 탐색 21.06.17 - ch08 다이나믹 프로그래밍 21.06.(19~20) - ch09 최단 경로 21.06.24 - ch10 그래프 이론 21.06.(26~27) ================================================= ===================== 2회 반복 ============..

반응형