반응형

백준 215

[파이썬, Python] 백준 24480: 알고리즘 수업 - 깊이 우선 탐색 2

문제 https://www.acmicpc.net/problem/24480 24480번: 알고리즘 수업 - 깊이 우선 탐색 2 첫째 줄에 정점의 수 N (5 ≤ N ≤ 100,000), 간선의 수 M (1 ≤ M ≤ 200,000), 시작 정점 R (1 ≤ R ≤ N)이 주어진다. 다음 M개 줄에 간선 정보 u v가 주어지며 정점 u와 정점 v의 가중치 1인 양 www.acmicpc.net 코드 import sys input = sys.stdin.readline sys.setrecursionlimit(10**9) n, m, r = map(int,input().split()) graph = [[] for _ in range(n+1)] visited = [0] * (n+1) cnt = 1 def dfs(gra..

[파이썬, Python] 백준 24479: 알고리즘 수업 - 깊이 우선 탐색 1

문제 https://www.acmicpc.net/problem/24479 24479번: 알고리즘 수업 - 깊이 우선 탐색 1 첫째 줄에 정점의 수 N (5 ≤ N ≤ 100,000), 간선의 수 M (1 ≤ M ≤ 200,000), 시작 정점 R (1 ≤ R ≤ N)이 주어진다. 다음 M개 줄에 간선 정보 u v가 주어지며 정점 u와 정점 v의 가중치 1인 양 www.acmicpc.net 코드 import sys input = sys.stdin.readline sys.setrecursionlimit(10**9) n, m, r = map(int,input().split()) graph = [[] for _ in range(n+1)] visited = [0] * (n+1) cnt = 1 for i in ra..

[파이썬, Python] 백준 2805: 나무 자르기

문제 https://www.acmicpc.net/problem/2805 2805번: 나무 자르기 첫째 줄에 나무의 수 N과 상근이가 집으로 가져가려고 하는 나무의 길이 M이 주어진다. (1 ≤ N ≤ 1,000,000, 1 ≤ M ≤ 2,000,000,000) 둘째 줄에는 나무의 높이가 주어진다. 나무의 높이의 합은 항상 M보 www.acmicpc.net 코드 import sys input = sys.stdin.readline n,m = map(int,input().split()) tree = list(map(int, input().split())) start, end = 0, max(tree) while start = mid: cut_tree += i - mid if cut_tree >= m: star..

[파이썬, Python] 백준 1654: 랜선 자르기

문제 https://www.acmicpc.net/problem/1654 1654번: 랜선 자르기 첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,000이하의 정수이다. 그리고 항상 K ≦ N 이다. 그 www.acmicpc.net 코드 import sys input = sys.stdin.readline k, n = map(int, input().split()) lan = [int(input()) for _ in range(k)] start, end = 1, max(lan) while start = n: start = mid + 1 else: end = mid - 1 print(end) 설명..

[파이썬, Python] 백준 1920: 수 찾기

문제 https://www.acmicpc.net/problem/1920 1920번: 수 찾기 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들 www.acmicpc.net 코드 n = int(input()) a_list = list(map(int, input().split())) a_list = set(a_list) m = int(input()) num_list = list(map(int, input().split())) for i in num_list: if i in a_list: print(1) else: p..

[파이썬, Python] 백준 1966: 프린터 큐

문제 https://www.acmicpc.net/problem/1966 1966번: 프린터 큐 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 www.acmicpc.net 코드 import sys input = sys.stdin.readline t = int(input()) for _ in range(t): cnt = 0 n,m = map(int,input().split()) paper = list(map(int,input().split())) idx = [i for i in range(len(paper))] target = idx[m] while len(pape..

[파이썬, Python] 백준 11866: 요세푸스 문제 0

문제 https://www.acmicpc.net/problem/11866 11866번: 요세푸스 문제 0 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000) www.acmicpc.net 코드 import sys input = sys.stdin.readline n, k = map(int, input().split()) first_k = k f_list = [] a_list = [] for i in range(n): f_list.append(i+1) while f_list: a_list.append(f_list.pop(k-1)) if not f_list: break k += first_k-1 while k > len(f_list): k -= len(f_list)..

[파이썬, Python] 백준 2164: 카드2

문제 https://www.acmicpc.net/problem/2164 2164번: 카드2 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 www.acmicpc.net 코드 import collections import sys input = sys.stdin.readline n = int(input()) card = collections.deque([i for i in range(1, n+1)]) while len(card) > 1: card.popleft() card.rotate(-1) print(card[0]) 설명 collections라는 모듈을 이용..

[파이썬, Python] 백준 1874: 스택 수열

문제 https://www.acmicpc.net/problem/1874 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net 코드 import sys input = sys.stdin.readline n= int(input()) stack = [] ans = [] check = 0 cur_num = 1 for _ in range(n): num = int(input()) while cur_num

[파이썬, Python] 백준 4949: 균형잡힌 세상

문제 https://www.acmicpc.net/problem/4949 4949번: 균형잡힌 세상 각 문자열은 마지막 글자를 제외하고 영문 알파벳, 공백, 소괄호("( )"), 대괄호("[ ]")로 이루어져 있으며, 온점(".")으로 끝나고, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마지막에 www.acmicpc.net 코드 while True: text = input() if text == '.': break stack = [] tf = True for i in text: if i == '(' or i == '[': stack.append(i) elif i == ')': if not stack or stack[-1] == '[': tf = False break elif stack[-1..

반응형