백준
백준2536번 (색종이2)
rabbit-jun
2025. 2. 24. 16:05
문제 정의
- n * 100 - 겹친 부분
- 겹친부분
a. 주어진 각 좌표 ($ (x_{1} , y_{1}),(x_{2} , y_{2}),(x_{3} , y_{3}) $)에서 다른 좌표를 뺀다
b. 뺀 값이 10보다 작으면 두 사각형은 겹치는 것
c. (10 - ( $ x_{2} - x_{1} $ ) ) x (10 - ( $ y_{2} - y_{1} $ ) )을 하여 겹친 부분의 값을 얻는다 - 겹친 부분들을 모두 합하고 여러개의 사각형이 공통으로 겹쳐지는 부분을 뺀다
나의 풀이(두개의 사각형이 겹침)
import sys
n = int(sys.stdin.readline().strip('\n'))
A = [list(map(int,input().split())) for _ in range(n)]
B = 0
t_cnt = sum([x+1 for x in range(len(A))])-n
d_cnt =0
i = 1
print(A)
for _ in range(t_cnt):
if i == n:
d_cnt +=1
i = 1 +d_cnt
if i <n:
tmp_x = abs(A[d_cnt][0] - A[i][0])
tmp_y = abs(A[d_cnt][1] - A[i][1])
i +=1
print(f'{_} , tmp_x:{tmp_x}, tmp_y:{tmp_y}')
if tmp_x <10 and tmp_y <10:
B += (10-tmp_x) * (10-tmp_y)
print(n*100 - B)
처음부터 여러개의 사각형이 겹치는걸 생각하는게 어려워 두개의 사각형이 겹쳤을때를 생각하면서 했다.
1, 2번 까지는 했는데 3번은 어떻게 해야 할지 생각을 더 해봐야 될 것 같다
반응형