Baekjoon/Python3

[백준][파이썬] 2563번 색종이

달의요정루나 2023. 7. 8. 13:11

https://www.acmicpc.net/problem/2563

 

2563번: 색종이

가로, 세로의 크기가 각각 100인 정사각형 모양의 흰색 도화지가 있다. 이 도화지 위에 가로, 세로의 크기가 각각 10인 정사각형 모양의 검은색 색종이를 색종이의 변과 도화지의 변이 평행하도록

www.acmicpc.net

- 이 문제를 정사각형이 겹쳐지는 범위를 제외해서 넓이를 구할려고 했지만 이 방법은 너무 어려울 것 같아서 다른 방법으로 했다.

- 그래서 정사각형이 있는 배열값들을 전부 1로 바꾸어서 1이 몇개인지를 세는 방법으로 해결했다. 그러면 겹쳐지는 부분을 따로 고려할 필요 없어서 더 편리하다.(정사각형이 겹쳐지는 부분은 배열값을 1에서 1로 바꾸는 거라서 겹쳐지는 부분을 고려할 필요 없다.)

num=int(input())
arr=[[0]*100 for _ in range(100)]#가로와 세로 크기가 각각100인 2차원 배열 선언

for i in range(num):
    x,y=map(int, input().split())#색종이 붙인위치를 입력받는다.
    for n in range(x,x+10): #가로(x)와 세로(y)위치를 기준으로 범위를 10으로 정한다.
        for m in range(y,y+10):
            arr[n][m]=1 #해당 범위에 있는 배열값을 1로 바꾸어준다.

count =0 #배열에서 1이 몇개인지 저장하는 변수이다.
for i in range(100):
    for j in range(100):
        if(arr[i][j]==1):
            count=count+1#배열값이 1인 배열개수를 입력받는다.

print(count)

'Baekjoon > Python3' 카테고리의 다른 글

[백준][파이썬] 10798번 세로읽기  (0) 2023.07.07
[백준] 2566번 최댓값  (0) 2023.07.07
[백준] 2738번 행렬 덧셈  (0) 2023.07.05
[백준] 25206번 너의 평점은  (0) 2023.06.30
[백준] 1316번 그룹 단어 체커  (0) 2023.06.29