Week 01 ~ 04 : 알고리즘 문제 풀이 104

파이썬 백준 11724 연결 요소의 개수

import sys input = sys.stdin.readline Vn, En = map(int, input().split()) V = {} for i in range(1, Vn + 1) : V[i] = [] for i in range(En) : v1, v2 = map(int, input().split()) V[v1].append(v2) V[v2].append(v1) gone = [] count = 0 def BFS(now) : que = [now] while que : q = que[0] gone.append(q) del que[0] for i in V[q] : if not i in gone and not i in que : que.append(i) for i in range(1, Vn + 1) : ..

파이썬 백준 1197 최소 스패닝 트리

import sys input = sys.stdin.readline Vn, En = map(int, input().split()) V = {} E = [] for i in range(1, Vn + 1) : V[i] = i for i in range(En) : E.append(list(map(int, input().split()))) E.sort(key = lambda x : x[2]) def endof(x) : if V[x] == x : return x return endof(V[x]) def check(a, b) : if endof(a) == endof(b) : return True return False def connect(a, b) : if endof(a) < endof(b) : V[endof(a..

파이썬 백준 1933 스카이라인 (스택을 손절한)

import sys input = sys.stdin.readline import heapq l = [] xpick= {0} n = int(input()) for i in range(n) : elem = list(map(int, input().split())) l.append(elem) xpick.add(elem[0]) xpick.add(elem[2]) l.sort(key=lambda x : (x[0], -x[1])) xpick = sorted(list(xpick)) del xpick[0] i = 0 heap = [] for now in xpick : while i < n and l[i][0] == now : if heap == [] : print(l[i][0], end = ' ') print(l[i][1..

파이썬 백준 1933 스카이라인 (스택과 큐를 곁들인)

import sys input = sys.stdin.readline import heapq l = [] n = int(input()) for i in range(n) : elem = list(map(int, input().split())) l.append(elem) l.append([0, 0, 1000000002]) l.append([1000000001, 0, 1000000002]) l.sort(key=lambda x : (x[0], -x[1])) heap = [[0, 0, 1000000002]] for a, h, b in l : if a == 0 : continue else : trash = [] hnow = 0 while heap[0][2] -heap[0][0] and h > hnow : print(..

파이썬 백준 9935 문자열 폭발

word = input() boom = list(input()) stack = [] count = 0 for i in range(len(word)) : stack.append(word[i]) if len(stack) >= len(boom) : if stack[len(stack) - len(boom) :] == boom : for i in range(len(boom)) : del stack[-1] if stack == [] : print('FRULA') else : print("".join(stack)) stack이 boom보다 짧을 동안에는, stack이 boom과 같아질 리가 없으므로 무조건 다음 글자를 넣는다. stack의 길이가 boom 이상일 때에는 stack의 뒤 len(boom)개의 원소를 b..