백준

    백준 1012번: 유기농 배추

    1012번: 유기농 배추 (acmicpc.net) 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 from collections import deque import sys dx = [-1,1,0,0] dy = [0,0,-1,1] def worm(x,y): que = deque() que.append((x,y)) if graph[x][y]..

    백준 11724번: 연결 요소의 개수

    11724번: 연결 요소의 개수 (acmicpc.net) 11724번: 연결 요소의 개수 첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 둘째 줄부터 M개의 줄에 간선의 양 끝점 u와 v가 주어진다. (1 ≤ u, v ≤ N, u ≠ v) 같은 간선은 한 번만 주 www.acmicpc.net 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 from collections import deque import sys n,m = map(int, input().split()) com = [] graph = [[0]]..

    백준 2606번: 바이러스

    2606번: 바이러스 (acmicpc.net) 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 from collections import deque import sys n = int(input()) m = int(input()) com = [] graph = [[0]] visited = [False] * (n+1)..

    백준 10773번: 제로

    10773번: 제로 (acmicpc.net) 10773번: 제로 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경 www.acmicpc.net 1 2 3 4 5 6 7 8 9 import sys n = int(input()) list = [] for i in range(n): list.append(int(sys.stdin.readline())) if list[-1]==0: list.pop() list.pop() print(sum(list)) cs

    백준 2108번: 통계학

    2108번: 통계학 (acmicpc.net) 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 from collections import Counter import sys n = int(input()) math = [] for i in range(n): math.append(int(sys.stdin.readline())) math.sort() most = Counter(math) result = most.most_common(2)..

    백준 2667번: 단지번호붙이기

    2667번: 단지번호붙이기 (acmicpc.net) 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 from collections import deque n = int(input()) graph = [] count = [] dx = [-1,1,0,0] dy = [0,0,-1,1] for _..

    백준 9012번: 괄호

    9012번: 괄호 (acmicpc.net) 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net 1 2 3 4 5 6 7 8 9 n = int(input()) for i in range(n): w = input() for j in w: w = w.replace("()","") if len(w)>0: print("NO") else: print("YES") cs

    백준 1966번: 프린터 큐

    1966번: 프린터 큐 (acmicpc.net) 1966번: 프린터 큐 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 www.acmicpc.net 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 from collections import deque n = int(input()) for i in range(n): count=1 a,b = map(int, input().split()) que = deque(list(map(int, input().split()))) while True: if que[0] !=..

    백준 1978번: 소수 찾기

    1978번: 소수 찾기 (acmicpc.net) 1978번: 소수 찾기 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. www.acmicpc.net 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 import math n = int(input()) count=0 num = list(map(int, input().split())) max = max(num) check=[True for _ in range(max+1)] check[0]=False check[1]=False for i in range(2,int(math.sqrt(max))+1): for j in range(i*2,max+1,i): check[j]..

    백준 1929번: 소수 구하기

    1929번: 소수 구하기 (acmicpc.net) 1929번: 소수 구하기 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. www.acmicpc.net 1 2 3 4 5 6 7 8 9 10 11 import math m, n = map(int, input().split()) check = [True for _ in range(n+1)] check[0]=False check[1]=False for i in range(2, int(math.sqrt(n))+1): for j in range(i*2, n+1,i): check[j]=False for i in range(m, n+1): if check[..