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

문제 이해
흰색 도화지의 크기가 100X100으로 정해져있다.
이 문제는 2차원 행렬을 이용하여 푸는 문제이다. 2차원 행렬을 0으로 초기화 한 후, 검정색 색종이가 있는 부분을 1로 할당한다. 그리고 2차원 행렬의 합을 구하면 이 문제는 해결된다. 이렇게 구하면 겹치는 부분을 신경 쓸 필요 없이 검은 영역의 넓이를 구할 수 있다.
문제 풀이(정답)
n = int(input())
paper = [[0] * 100 for _ in range(100)]
for _ in range(n):
x, y = map(int, input().split())
for i in range(x, x+10):
for j in range(y, y+10):
paper[i][j] = 1
print(sum(sum(paper, []))) # 2차원 배열 합계
paper라는 변수에 0으로 초기화한 2차원 행렬을 만들어 주었다.
그리고 검은 색종이의 크기는 10X10으로 정해져있으므로, 2중 for문을 이용해 검은색 색종이의 면적을 paper변수에 1로 표시해 주었다.
마지막에 2차원 행렬의 합을 구하는 방법이 어려웠는데
sum(변수, [])는 파이썬에서 주어진 변수와 빈 리스트를 합산하는 함수이다. 이 코드를 이용해 2차원 행렬을 1차원 행렬로 바꾸어 주었다.
그 후, sum()함수를 이용해 1차원 행렬에 있는 원소들의 합을 구하면서 검은 색종이의 면적을 구할 수 있었다.
'알고리즘문제풀이' 카테고리의 다른 글
| [백준/Python] 11652번 카드 (0) | 2025.02.28 |
|---|---|
| [백준/Python] 7785번 회사에 있는 사람 (0) | 2025.02.27 |
| [백준/Python] 2606번 바이러스 (0) | 2025.02.25 |
| [백준/Python] 11659번 구간 합 구하기 4 (0) | 2025.02.21 |
| [백준/Python] 1629번 곱셈 (0) | 2025.02.20 |
