본문 바로가기
  • KEEP HUSTLE!

파이썬59

[백준 4386] 별자리 만들기 - Python(파이썬) 우선순위 큐인 heapq 사용! from heapq import heappop, heappush import sys def find(x): if home[x] < 0: return x home[x] = find(home[x]) return home[x] def union(a, b): home[b] = a n = int(sys.stdin.readline().strip()) arr = [list(map(float, sys.stdin.readline().split())) for _ in range(n)] home = [-1] * (n + 1) my_heap = [] answer = 0 cnt = 0 for i in range(n): for j in range(i+1, n): w, a, b = round(pow.. 2021. 3. 21.
[백준 1197] 최소 스패닝 트리 - Python(파이썬) import sys def find(x): if home[x] < 0: return x home[x] = find(home[x]) return home[x] V, E = map(int, sys.stdin.readline().split()) home = [-1] * (V + 1) arr = [] answer, cnt = 0, 0 for _ in range(E): a, b, c = map(int, sys.stdin.readline().split()) arr.append([c, a, b]) # 가중치로 오름차순 정렬 arr.sort(key=lambda x: x[0]) for i in range(E): weight, a, b = arr[i] # 연결이 되었는 지 확인 f_a, f_b = find(a), find.. 2021. 3. 21.
[백준 9372] 상근이의 여행 - Python(파이썬) n개의 정점을 가지는 그래프의 최소 간선의 수는 (n-1)개!! import sys T = int(sys.stdin.readline().strip()) for tc in range(T): N, M = map(int, sys.stdin.readline().split()) print(N-1) for _ in range(M): sys.stdin.readline() 2021. 3. 21.
[백준 20040] 사이클 게임 - Python(파이썬) 유니온파인드를 이용!! import sys def find(x): if home[x] < 0: return x home[x] = find(home[x]) return home[x] def union(a, b, idx): a, b = find(a), find(b) # 사이클을 찾는다면 해당 인덱스를 출력하고 종료 if a == b: print(idx) sys.exit(0) if home[a] < home[b]: home[a] += home[b] home[b] = a else: home[b] += home[a] home[a] = b n, m = map(int, sys.stdin.readline().split()) home = [-1] * n for i in range(1, m+1): a, b = map(in.. 2021. 3. 21.
[백준 1717] 집합의 표현 - Python(파이썬) import sys def find(x): if my_set[x] < 0: return x my_set[x] = find(my_set[x]) return my_set[x] def union(x, y): x, y = find(x), find(y) if x == y: return if my_set[x] < my_set[y]: my_set[x] += my_set[y] my_set[y] = x else: my_set[y] += my_set[x] my_set[x] = y n, m = map(int, sys.stdin.readline().split()) my_set = [-1] * (n + 1) for _ in range(m): key, a, b = map(int, sys.stdin.readline().split(.. 2021. 3. 11.
[백준 6549] 히스토그램에서 가장 큰 직사각형 - Python(파이썬) 스택을 활용함 import sys def solution(data): arr = data[1:] stack = [] my_max = 0 for idx, value in enumerate(arr): my_idx = idx while stack and stack[-1][0] >= value: h, my_idx = stack.pop() my_max = max(my_max, (idx - my_idx) * h) stack.append((value, my_idx)) for h, idx in stack: my_max = max(my_max, (n - idx) * h) print(my_max) while True: data = list(map(int, sys.stdin.readline().split())) n = da.. 2021. 3. 11.