분류 전체보기161 11004-K번째 수 (python) """ 1. sorted 활용 """ n, k = input().split() array = map(int, input().split(' ')) array = sorted(array) print(array[int(k)-1]) """ 2. merge sort 활용 """ def merge_sort(array): if len(array) 2020. 10. 12. 2751-수 정렬하기 2 (python) """ 1. 내가 작성한 코드 (계수 정렬 알고리즘 사용) """ """ 이점: 메모리를 적게 사용함 """ import sys n = int(sys.stdin.readline()) MAX = 1_000_000 negatives = [0 for _ in range(MAX + 1)] positives = [0 for _ in range(MAX + 1)] for _ in range(n): number = int(sys.stdin.readline()) if number >= 0: positives[number] += 1 else: negatives[-number] += 1 for x in range(MAX, -1, -1): if negatives[x] >= 1: print(-x) for x in range(M.. 2020. 10. 12. 프림 알고리즘(Prim's algorithm) 1. 프림 알고리즘(Prim's algorithm): 크루스칼 알고리즘과 다르게(전체 간선을 정렬한 후 하나의 간선부터 시작), 하나의 특정 노드를 정하고, 연결된 간선 중 가중치가 가장 작은 간선을 선택하며 길을 확장하는 알고리즘 (예, 스타 크래프트 게임) - 크루스칼 알고리즘과 공통점: 둘다 탐욕 알고리즘을 구현함 2. 시간 복잡도: 최악의 경우(while문에서 모든 간선을 돌고, 최소 힙 구조를 이룬다면) O(E logE), - 개선된 시간 복잡도: O(E logV) 2020. 10. 12. 4195-친구 네트워크 (python) def find(x): if x != parents[x]: parents[x] = find(parents[x]) return parents[x] def union(x, y): root1 = find(x) root2 = find(y) if root1 != root2: parents[root2] = root1 numbers[root1] += numbers[root2] tc = int(input()) for _ in range(tc): parents = dict() numbers = dict() f = int(input()) for _ in range(f): x, y = input().split() if x not in parents: parents[x] = x numbers[x] = 1 if y not in.. 2020. 10. 12. 이전 1 ··· 20 21 22 23 24 25 26 ··· 41 다음