Algorithm/알고리즘 스터디(2021.12) 7

[Algorithm] 다익스트라 최단 경로 알고리즘

출처: https://youtu.be/acqm9mM1P6o - 나동빈 이코테 import sys input = sys.stdin.readline INF = int(1e9) # n: 노드, m: 간선 n, m = 6, 5 # start: 시작 노드 start = 1 # graph: 연결되어 있는 노드 정보 리스트 graph = [[] for i in range(n + 1)] # 방문 여부 체크 리스트 visited = [False] * (n + 1) # 최단 거리 테이블 초기화 distance = [INF] * (n + 1) # # 모든 간선 정보 입력받기 # for _ in range(m): # a, b, c = map(int, input().split()) # # a -> b 일 때 비용은 c # gr..

[이코테] 4. 정렬 알고리즘

* 선택정렬 - 처리되지 않은 데이터 중에서 가장 작은 데이터를 선택해 맨 앞에 있는 데이터와 바꾼다 * n result = [] def selection_sort1(data): if len(data) > 1: n = data[0] m = data[1:] temp = min(m) index = 0 if n > min(m): index = m.index(temp) m[index] = n result.append(temp) else: result.append(n) return selection_sort1(m) else: result.append(data[0]) def selection_sort2(array): for i in range(len(array)): min_index = i for j in rang..

[이코테] 구현: 시뮬레이션과 완전탐색

* 상하좌우 n = int(input()) a = input().split() _dict = { 'R': (0, 1), 'L': (0. -1), 'U': (-1, 0), 'D': (1, 0) } location_v = 1 location_h = 1 while a: direction = a.pop(0) if direction == 'R' and location_h == n: pass elif direction == 'L' and location_h == 1: pass elif direction == 'U' and location_v == 1: pass elif direction == 'D' and location_v == n: pass else: location_v += _dict[direction][0]..

[이것이코딩테스트다][MEMO] 10, 11강, 12강, 13강

강의 듣다가 필요한 부분은 메모를 하려 한다. * 그리디 알고리즘에서 본 식인데 처음에 생각한 식이 모든 수를 탐색해서 -1을 한 뒤 결과를 도출해내는 방식이었다. 근데 그러면 시간 복잡도가 O(K) 인데 시간복잡도를 O(logK) 로 바꿀 수 있는 식이라 해서 메모한다. (target 은 n을 k로 나눈 몫 * k 로 나머지 없는 수다.) n, k = map(int, input().split()) result = 0 while n >= k: target = (n // k) * k result += (n - target) n = target result += 1 n //= k result += (n - 1) print(result) * 곱하기 혹은 더하기 data = map(int, str(input()..

[이것이코딩테스트다][MEMO] 4, 5, 6, 7, 8, 9강

영상: https://youtu.be/m-9pAwq1o3w * 시간복잡도까지 나와서 알아두면 좋을 거 같아 캡쳐해옴 + 파이썬에서는 removeAll을 제공하지 않아 removeAll을 사용하고 싶다면 사용자함수를 따로 만들어야 함 * 튜블은 리스트와 비슷하게 생겼으나 변수 재할당 불가능, 인덱스별 원소 할당 불가능 * 리스트보다 메모리 소비가 적음 * python의 dict에서 keys, values 는 javascript의 Object.keys(객체), Object.values(객체) 랑 비슷 * 집합 자료형 참고사항 # unpacking a, b, c = input().split() # packing import sys # 문자열 입력받기 data = sys.stdin.readlin().rstrip..

반응형