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


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
import sys
input = sys.stdin.readline
coordinateList = [[0]*100 for _ in range(100)]
for i in range(int(input())):
x, y = map(int,input().split())
try:
for j in range(10):
for k in range(10):
coordinateList[x+j][y+k] = 1
except:
pass
cnt = 0
for l in coordinateList:
for m in l:
if m ==1:
cnt+=1
print(cnt)
|
cs |

도화지 변의 길이가 100으로 제한되어 있기 때문에 전체 좌표를 만들어 풀 수 있다.
[0]이 100개가 들어있는 리스트를 100개를 만들어 전체 좌표를 표현한다. 그 다음 만약 추가한 색종이의 넓이에 포함되는 좌표라면 해당 좌표의 coordinateList값을 [1]로 바꾼다. 즉 coordinateList[a][b] 는 (a,b) 좌표가 색종이의 넓이에 포함 된다면 1이 될 것이고 그게 아니라면 그대로 0일 것이다. 마지막으로 coordinateList를 순회하며 1의 갯수를 세어주면 그 값이 색종이의 넓이가 된다.
리뷰를 작성하면서 문제 입력 조건에 "색종이가 도화지 밖으로 나가는 경우는 없다" 라고 되어 있기 때문에 굳이 try,except로 예외처리를 할 필요가 없었던 것을 발견했다...
'코테' 카테고리의 다른 글
[백준 / Python] 2108번 : 통계학 (1) | 2023.02.03 |
---|---|
[백준 / Python] 9020번 : 골드바흐의 추측 (0) | 2023.02.02 |
[백준 / Java] 15552번 : 빠른 A+B (0) | 2023.01.31 |
[백준 / Python] 4948번 : 베르트랑 공준 (1) | 2023.01.30 |
[백준 / Python] 1620번 : 나는야 포켓몬 마스터 이다솜 (0) | 2023.01.29 |