백준 색종이 코드 및 해설 (파이썬)

2021. 11. 3. 13:33algorithm

반응형

https://www.acmicpc.net/problem/2563

 

2563번: 색종이

첫째 줄에 색종이의 수가 주어진다. 이어 둘째 줄부터 한 줄에 하나씩 색종이를 붙인 위치가 주어진다. 색종이를 붙인 위치는 두 개의 자연수로 주어지는데 첫 번째 자연수는 색종이의 왼쪽 변

www.acmicpc.net

 

100*100 크기의 0으로 이루어진 행렬을 만들고 이를 도화지로 생각했습니다. 사각형 입력이 주어질 때마다 그 부분을 1로 채워줬고, 0에서 1로 바뀌는 순간 count를 하나씩 증가해줬습니다. 최종 count를 답으로 프린트했습니다.

 

import sys

def fill_square(square, board, answer):
	x,y = square
	# 사각형의 범위 
	for i in range(x, x+10):
		for j in range(y, y+10):
			# 처음 칠하는 부분이면 +1 
			if board[i][j] == 0:
				answer += 1
			board[i][j] = 1
	return board, answer

N = int(sys.stdin.readline())
squares = []
for _ in range(N):
	squares.append(list(map(int, sys.stdin.readline().split())))

answer = 0
# 빈 도화지 
board = [[0] * 101 for _ in range(101)]
for square in squares:
	board, answer = fill_square(square, board, answer)

print(answer)
반응형