분류 전체보기 206

파이썬 백준 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..

파이썬 백준 5904 Moo 게임

m = int(input()) k = 0 leng = 3 while leng < m : k = k + 1 leng = 2 * leng + 3 + k def DAC(x, l, n) : if x == 0 : if n == 1 : return 'm' else : return 'o' l = (l - 3 - x) // 2 x = x - 1 if n l + x + 4 : return DAC(x, l, n - l - x - 4) else : return 'o' print(DAC(k, leng, m)) n의 range가 10억이므로 순열을 직접 만들어서는 메모리 초과가 나올 것이다. 순열을 직접 만들지 않고 길이와 구성만 다루는 접근이 필요하다. S(k)는 세 부분으로 나눌 수 있다. 왼쪽 S(k-1), 가운데 moo..

골?드

수학과 지식을 이용해서 분수에 맞지 않는(?) 문제 몇개에 매달린 덕분에 뜬금없이 골드가 되었다... 학부시절에 정수론 이산수학같이 PS에 크리티컬한 과목들이 C였는데 그래도 막상 쓸때가 되니 다 기억이 나긴 하는게 신기하다. 자료구조나 알고리즘 이해해서 쓰는 문제는 실~골 정도가 내 수준에 맞는 문제 난이도이고 플래부터 좀 버거운 것 같다. 다음주차는 문제 수가 이번주보다 적다고 한다. 혹시 시간이 남으면 이전 주차의 플래 문제들을 풀면서 봉우리에서 하산하는 절차를 밟아보자.

PS 공부 기록 2021.11.17