목록알고리즘 문제풀이/백준 (7)
취미가 좋다
https://www.acmicpc.net/problem/2636 2636번: 치즈 아래 과 같이 정사각형 칸들로 이루어진 사각형 모양의 판이 있고, 그 위에 얇은 치즈(회색으로 표시된 부분)가 놓여 있다. 판의 가장자리(에서 네모 칸에 X친 부분)에는 치즈가 놓 www.acmicpc.net Solution import sys input = sys.stdin.readline from collections import deque def melt(): num = 0 while(ready): i, j = ready.pop() cheese[i][j] = 0 num += 1 return num def chk(): while(q): i, j = q.pop() if cheese[i][j] == 1: ready.app..
https://www.acmicpc.net/problem/22868 22868번: 산책 (small) 첫 번째 줄에는 정점의 개수 $N$과 두 정점 사이를 잇는 도로의 개수 $M$이 공백으로 구분되어 주어진다. 두 번째 줄부터 $M + 1$ 번째 줄까지 정점 $A, B$가 공백으로 구분되어 주어진다. 정점 $A$와 www.acmicpc.net Solution from collections import defaultdict from queue import Queue import sys input = sys.stdin.readline n, m = map(int, input().split()) graph = defaultdict(list) for _ in range(m): a, b = map(int, inpu..
https://www.acmicpc.net/problem/14890 14890번: 경사로 첫째 줄에 N (2 ≤ N ≤ 100)과 L (1 ≤ L ≤ N)이 주어진다. 둘째 줄부터 N개의 줄에 지도가 주어진다. 각 칸의 높이는 10보다 작거나 같은 자연수이다. www.acmicpc.net Solution import sys input = sys.stdin.readline def chk(road, L, N): len = 0 pre = road[0] for i, floor in enumerate(road): if floor == pre: len += 1 elif abs(floor-pre) >= 2: return False elif floor > pre: if len < L: return False len =..
https://www.acmicpc.net/problem/1018 1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net Solution N, M = map(int, input().split()) board = [] for _ in range(N): board.append(input()) ans = N*M for i in range(0,N-7): for j in range(0,M-7): sum = 0 for b in range(i,i+8): for a in range(j,j+8): if (a+b)%2==0: ..
https://www.acmicpc.net/problem/7568 7568번: 덩치 우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩 www.acmicpc.net Solution N = int(input()) people = [] for _ in range(N): w, h = map(int,input().split()) people.append((w, h)) for i in people: rank = 1 for j in people: if i[0] < j[0] and i[1] < j[1]: rank += 1 print(rank, end=' ')..
https://www.acmicpc.net/problem/2231 2231번: 분해합 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 www.acmicpc.net Solution num = int(input()) ans = max(num-54, 1) while(1): temp = ans sum = 0 while(temp): sum += temp % 10 temp = temp // 10 if num == ans + sum: print(ans) break elif num < ans: print(0) break ans += 1 입력 ..