BOJ - 2563번 색종이 (Python)

woga·2021년 1월 22일
1

python 풀이

목록 보기
22/27
post-thumbnail

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

난이도

Silver 5


풀이 방법

처음엔, N만큼 100을 곱한 후에 각 좌표마다 겹치는 넓이를 빼줘야한다고 생각했다.
하지만 프로그래밍적으로 생각하니 해당 방법은 복잡할 것 같아서 쉽게 생각해보니 영역마다 체크를해서 해당 체크된 부분만 counting을 하는 것이다.

문제처럼 칸이 있는 배경이라면 넓이는 가로 * 세로지만, 간혹 안에 있는 칸의 개수로 셀수 있다. 1 x 2 = 2해당 넓이의 칸의 개수는 2이라 넓이가 2 인 것 처럼


통과 코드

if __name__ == '__main__':
    N = int(input())
    paper = [[0]*101 for _ in range(101)]
    area = 0
    for i in range(N):
        x,y = map(int,input().split())
        for j in range(x,x+10):
            for k in range(y,y+10):
                paper[j][k] = 1

    for row in paper:
        if 1 in row:
            area += sum(row)
    print(area)
profile
와니와니와니와니 당근당근

0개의 댓글