본문 바로가기
코딩 테스트/Python_백준

[백준/Python] 2563번 색종이 문제

by 모두의 케빈 2023. 4. 4.

■ 2563번 색종이 문제

 

출처: 백준 2563번 색종이 문제

 

■ 코드 풀이

 

처음에는 면적을 어떻게 구해야 하나 고민을 정말 많이 했습니다. 알고 보니 정말 간단하게 풀 수 있더군요. 아이디어는 심플합니다. 하얀 색종이를 가로 1, 세로 1인 작은 정사각형이 100개가 이루어졌다고 가정합시다. 마치 사진을 구성하는 픽셀(Pixel)처럼요. 이를 white_paper라는 2차원 배열로 구현하고 값을 0으로 초기화합니다. 이후 입력받은 x, y를 기준으로 가로로 10칸, 세로로 10칸을 1로 채워줍니다. 이후에 값이 1인 칸의 개수만 count 하면 면적이 나옵니다.

정말 멋진 아이디어 아닌가요? 저는 이 풀이법을 보면서 역시 훌륭한 솔루션은 단순한 아이디어에서 출발한다는 것을 또 한 번 느꼈습니다. 

white_paper = [[0 for j in range(100)] for i in range(100)]
counts = 0

N = int(input())

for i in range(N):
	x, y =  list(map(int, input().split()))

	for x_idx in range(x,x+10):
		for y_idx in range(y,y+10):
        	white_paper[x_idx][y_idx] = 1


for array_row in white_paper:
	counts += array_row.count(1)

print(counts)

댓글