이호영
백준 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[..
백준 2751번: 수 정렬하기 2
2751번: 수 정렬하기 2 (acmicpc.net) 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 1 2 3 4 5 6 7 n = int(input()) num =[] for i in range(n): num.append(int(input())) num.sort() for j in range(n): print(num[j]) cs 느낀 점 이 코드는 python3로 했을 때 시간초과가 나서 pypy3로 했다. 파이썬이 편리한 대신 실행 속도가 느린 탓이다. python3로 성공해서 아쉬운 감이 ..
백준 2609번: 최대공약수와 최소공배수
2609번: 최대공약수와 최소공배수 (acmicpc.net) 2609번: 최대공약수와 최소공배수 첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다. www.acmicpc.net 1 2 3 4 5 6 7 8 9 10 11 12 13 a = list(map(int, input().split())) max = max(a) min = min(a) answer = 0 while max!=min: answer = max-min if answer>min: max=answer elif answer
백준 11651번: 좌표 정렬하기 2
11651번: 좌표 정렬하기 2 (acmicpc.net) 11651번: 좌표 정렬하기 2 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net 1 2 3 4 5 6 7 8 9 10 n = int(input()) xy=[] for i in range(n): xy.append([]) x,y = map(int, input().split()) xy[i].append(x) xy[i].append(y) xy.sort(key=lambda z: (z[1], z[0])) for j in range(n): p..
백준 2164번: 카드2
https://www.acmicpc.net/problem/2164 2164번: 카드2 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 www.acmicpc.net 1 2 3 4 5 6 7 8 9 10 from collections import deque n = int(input()) card = deque([]) for i in range(1,n+1): card.append(i) while len(card)!=1: card.popleft() card.append(card[0]) card.popleft() print(card[0]) cs 느낀 점 처음 이 문..
백준 1436번: 영화감독 숌
1436번: 영화감독 숌 (acmicpc.net) 1436번: 영화감독 숌 666은 종말을 나타내는 숫자라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타 www.acmicpc.net 1 2 3 4 5 6 7 8 9 10 11 12 13 14 n = int(input()) i=0 num = 666 shom = [666] while True: num+=1 sn = str(num) if "666" in sn: shom.append(sn) i+=1 if n==i: print(shom[i-1]) break cs 느낀점 시간 제한이 2초라 while문으로 숫자를 1씩 증가시켜서 코드를 짜면 시간 초과..