PYTHON 116

[baekjoon] 백준 7576번 : 토마토 (by python) with 너비 우선 탐색 bfs

https://www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net 정답 code #토마토 import sys from collections import deque input = sys.stdin.readline dx = [-1,1,0,0] dy = [0, 0 , -1, 1] def bfs(): while queue: x, y = queue.popleft() for i in range(4): nx = x + dx[i] ny = y + dy[i] i..

[baekjoon] 백준 2630번 : 색종이 만들기 (with python) 재귀

https://www.acmicpc.net/problem/2630 2630번: 색종이 만들기 첫째 줄에는 전체 종이의 한 변의 길이 N이 주어져 있다. N은 2, 4, 8, 16, 32, 64, 128 중 하나이다. 색종이의 각 가로줄의 정사각형칸들의 색이 윗줄부터 차례로 둘째 줄부터 마지막 줄까지 주어진다. www.acmicpc.net 정답 code #색종이 만들기 import sys input = sys.stdin.readline n = int(input()) paper = [list(map(int,input().split())) for _ in range(n)] result = [] def solution (x,y,n): color = paper[x][y] for i in range(x,x+n): ..

[baekjoon] 백준 2606번 : 바이러스 (by python 파이썬) bfs dfs 두가지 풀이

https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net 정답 code -dfs 활용 #dfs이용 def dfs(com, x): global cnt visited[x] = True for i in com[x]: if visited[i] == False: dfs(com,i) cnt += 1 return True n = int(input()) c = int(input()) cnt = 0 com = [[] for _ in range(n+1)] for _ in ra..

[baekjoon] 백준 2579번 : 계단 오르기 (by python)

https://www.acmicpc.net/problem/2579 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net 정답 code #계단오르기 import sys input = sys.stdin.readline n = int(input()) score = [0 for i in range(301)] dp = [0 for i in range(301)] for i in range(n): score[i] = int(input()) dp[0] = score[0] dp[1] = score[0] + score[1] dp[2] = max..

[baekjoon] 백준 2178번 : 미로 탐색 (by python 파이썬) with bnf

https://www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net 정답 code #미로 탐색 from collections import deque def bfs(x,y): dx = [-1,1,0,0] dy = [0,0,-1,1] queue = deque() queue.append((x,y)) while queue: x, y = queue.popleft() for i in range(4): nx = x + dx[i] ny = y + dy[i] if nx =n or ny= m: continue i..

[baekjoon]백준 1992번 : 쿼드트리 (by python 파이썬) 분할,재귀

https://www.acmicpc.net/problem/1992 1992번: 쿼드트리 첫째 줄에는 영상의 크기를 나타내는 숫자 N 이 주어진다. N 은 언제나 2의 제곱수로 주어지며, 1 ≤ N ≤ 64의 범위를 가진다. 두 번째 줄부터는 길이 N의 문자열이 N개 들어온다. 각 문자열은 0 또 www.acmicpc.net 정답 code #쿼드 트리 n = int(input()) tree = [list(map(int,input())) for _ in range(n)] def quadtree(x,y,n): if n == 1: return str(tree[x][y]) #x: 세로 y: 가로 result = [] for i in range(x, x+n): for j in range(y, y+n): if (tr..

[baekjoon] 1931번 : 회의실 배정 (by python)

https://www.acmicpc.net/problem/1931 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 정답 code import sys input = sys.stdin.readline n = int(input()) time = [[0]*2 for _ in range(n)] for i in range(n): x, y = map(int,input().split()) time[i][0] = x time[i][1] = y time.sort(key= lambda x: x[0]) #시작시간순으로 정렬 time.sort(key= lambda x : x[1]) # 끝나는 시간순으로 정렬 cnt = 0 endTime = 0 fo..

[baekjoon] 백준 1927번 : 최소 힙 (by python 파이썬) with heapq

https://www.acmicpc.net/problem/1927 1927번: 최소 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 정답 code import heapq import sys input = sys.stdin.readline n = int(input()) heap = [] for _ in range(n): x = int(input()) if x == 0: if len(heap) == 0: print(0) else: print(heapq.heappop(heap)) else: heapq.heappu..

[baekjoon] 1780번 : 종이의 개수 (by python 파이썬)

https://www.acmicpc.net/problem/1780 1780번: 종이의 개수 N×N크기의 행렬로 표현되는 종이가 있다. 종이의 각 칸에는 -1, 0, 1 중 하나가 저장되어 있다. 우리는 이 행렬을 다음과 같은 규칙에 따라 적절한 크기로 자르려고 한다. 만약 종이가 모두 같은 수 www.acmicpc.net 정답 code #종이의 개수 n = int(input()) paper = [list(map(int,input().split())) for _ in range(n)] minues = 0 zero = 0 one = 0 def dfs(x,y,n): global minues, zero, one check = paper[x][y] for i in range(x,x+n): for j in rang..

[ baekjoon]백준 1764번 : 듣보잡 (by python 파이썬)

https://www.acmicpc.net/problem/1764 1764번: 듣보잡 첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. www.acmicpc.net 정답 code import sys input = sys.stdin.readline n,m = map(int,input().split()) hear = {} result = [] for i in range(n): name = input() hear[name] = i for i in range(m): name = input() if name in hear: result.append(name) res..