1) swapElement배열에 있는 두 요소의 값을 바꿈요소를 읽고 쓰는 것 : 상수 시간 연산start의 위치에서부터 배열에 있는 가장 작은 요소의 인덱스 찾음비교횟수 : n - start (n: 요소 개수)배열 정렬0 ~ n-1까지 반복하므로, n번 반복 실행n
스택(LIFO) 와 을 이용 큐(FIFO) collections 모듈에서 제공하는 deque(스택&큐) 자료구조 활용 from colloctions import deque 큐(Queue) 구현을 위한 deque 라이브러리 queue = deque() 3을 enqueue
정렬 알고리즘 중, 가장 많이 사용되는 알고리즘기준을 설정한 다음, 큰 수와 작은 수를 교환한 후, 리스트를 반으로 나누는 방식퀵 정렬에는 pivot이 사용됨(리스트의 첫번째를 피벗으로 정함) 피벗을 설정한 후, 왼쪽에서부터 피벗보다 큰 데이터를 찾고(while문의 조
재귀, 반복문을 이용한 이진탐색(with. python)
그래프에서, 여러 개의 노드가 있을 때, 특정한 노드에서 출발하여 다른 노드로 가는 각각의 최단 경로를 구해주는 알고리즘그리디 알고리즘으로 분류됨(매번 \*\*가장 비용이 적은 노드를 선택하는 과정을 반복)출발노드 설정(start)최단 거리 테이블 초기화(distanc
크루스칼 알고리즘, 위상 정렬 알고리즘
DFS(깊이 우선 탐색) 탐색 시작 노드를 스택에 삽입하고 방문 처리 스택의 최상단 노드에 방문하지 않은 인접노드가 있으면 그 인접 노드를 스택에 넣고 방문처리를 한다. 방문하지 않은 인접 노드가 없으면, 스택에서 최상단 노드를 꺼낸다 더 이상의 수행이 없을 때까지 반
동네 편의점의 주인인 velmash는 N개의 동전을 가지고 있습니다. 이때 N개의 동전을 이용하여 만들수 없는 양의 정수 금액 중 최솟값을 구하는 프로그램을 작성하세요.첫째 줄에는 동전의 개수를 나타내는 양의 정수 N이 주어집니다. (1 <= N <= 1,0
LIS 알고리즘 최장 증가 부분 수열 : 원소가 n개인 배열의 일부 원소를 골라내서 만든 부분 수열 중, 각 원소가 이전 원소보다 크다는 조건을 만족하고, 그 길이가 최대인 부분 수열 arr = [10, 30, 10, 40, 30, 50] 배열이 있다고 하자. 이때
순서가 정해져 있는 일련의 작업을 차례대로 수행해야 할 때 사용할 수 있는 알고리즘방향 그래프의 모든 노드를 "방향성에 거스르지 않도록 순서대로 나열하는 것"ex) 선수과목을 고려한 학습 순서 설정1\. 진입차수가 0인 노드를 큐에 넣는다2\. 큐가 빌 때까지 다음