문제 링크: https://www.acmicpc.net/problem/2669
코드
# 100 x 100 매트릭스 생성 (문제에서 주어진 정수 범위)
matrix = [[0] * 100 for _ in range(100 + 1)]
cnt = 0
for i in range(4):
i, j, x, y = map(int, input().split())
# range(i, x+1)이 아닌 이유: 점 좌표가 아니라 박스 좌표를 구해야 해서
for a in range(i, x):
for b in range(j, y):
if matrix[a][b] == 0:
matrix[a][b] += 1
cnt += 1
print(cnt)
풀이
input() 값으로 좌표 평면의 점 좌표가 주어지지만, (0,0)부터 (1,1)까지 크기 1짜리 박스 좌표라고 생각하면 쉽다.
for i in range(4):
i, j, x, y = map(int, input().split())
for a in range(i, x): # range(i, x+1)이 아닌 이유: 좌표가 아니라 박스를 구해야 해서
for b in range(j, y):
박스는 점보다 input() 값이 1개 더 필요함
a, b가 주어지면, range(a, b+1) 범위가 아닌, range(a, b +1 -1)
즉 range(a, b) 범위를 순회
for i in range(4):
i, j, x, y = map(int, input().split())
for a in range(i, x): # range(i, x+1)이 아닌 이유: 좌표가 아니라 박스를 구해야 해서
for b in range(j, y):
if matrix[a][b] == 0:
matrix[a][b] += 1
cnt += 1
print(cnt) # 정답
cnt = 표시된 좌표의 수 = 색칠된 박스의 넓이
끝.
코드 주석 더 달아주세요!