처음에 한 변의 길이가 100인 도화지를 만들어야겠다는 생각을 하는게 제일 어려웠고,
그 다음부터는 크게 어려운 것이 없었다.
생각했던 방향은
1. 큰 도화지를 만들고(0으로 100X100 배열을 만듦)
2. 만든 도화지에 색종이들을 붙임(색종이가 붙는 위치를 1로 바꿈)
3. 색종이가 중복해서 붙는 부분의 넓이를 뺌
N = int(input())
result = N * 100
locations = [[0] * 101 for _ in range(101)]
for _ in range(N):
x, y = map(int, input().split())
for i in range(10):
for j in range(10):
if locations[x+i][y+j] != 1:
locations[x+i][y+j] = 1
else:
result -= 1
print(result)
풀이과정
1. 0으로 100 X 100의 배열을 만듦 → 색종이를 붙일 큰 도화지 역할
2. 전체 넓이를 n X 100 해서 구해놓음(result)
3. 좌측하단 좌표가 주어지므로, 그 좌표부터 한변의 길이가 10인 색종이가 붙는 자리를 배열에서 1로 바꿈
4. 색종이를 붙일 때, 이미 1인 자리는 색종이가 붙어있는 자리이므로 중복된다고 판단하고 전체 넓이에서 1 빼기
5. 색종이가 겹치는 자리를 제외한 전체 넓이 출력
'코테연습문제' 카테고리의 다른 글
[백준/Python] 1475 방 번호 (0) | 2023.06.07 |
---|---|
[백준/Python] 14503 로봇청소기 (0) | 2023.06.05 |
[백준/Python] 2167 2차원 배열의 합 (0) | 2023.06.01 |
[백준/Python] 2504 괄호의 값 (0) | 2023.05.30 |
[백준/Python] 14891 톱니바퀴 (0) | 2023.05.28 |