🖥️ 오늘의 백준

백준 2563번 : 색종이 [Python]

무콩이 2023. 4. 7. 01:21

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

 

2563번: 색종이

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

www.acmicpc.net

접근법

100*100의 도화지를 만들어서 색종이 구역을 색칠한다.

 

1. 100*100 도화지 만들기 => 이차원 배열 사용

arr = [[0]*100 for _ in range(100)]

2. 색종이 구역 색칠하기 => 1로 만들기 -- 최종 넓이 구할 때 바로 계산 가능

for j in range(x, x+10):       
    for k in range(y, y+10):           
        arr[j][k] = 1

입력받은 x,y좌표부터 +10까지 범위를 1로 채우기

ㄴ 이렇게 하면 색종이가 겹쳐진 부분도 중복해서 추가되지 않고 1이 한번만 추가됨

 

코드

N = int(input()) #색종이 수

arr = [[0]*100 for _ in range(100)]
result = 0

for i in range(N):
    x , y = map(int, input().split()) #x,y좌표
    for j in range(x, x+10):
        for k in range(y, y+10):
            arr[j][k] = 1

for a in range(100):
    for b in range(100):
        result += arr[a][b]
print(result)

 

생각보다 간단해서.. 당황스러웠다

 

오늘의 교훈 : 겁먹지 말자