

문제 분석
- 가로, 세로 길이가 100인 정사각형 모양의 흰 도화지
- 가로, 세로 길이 각 10인 색종이를 여러장 붙이고 색종이가 붙은 영역 넓이 return
코드 설계
- 100 x 100 도화지를 False로 초기화하고
- 색종이의 영역을 True로 변환
- 이때 이미 칠해진 부분은 pass
- 최종적으로 True인 영역의 범위를 return하면 그게 색종이의 넓이가 될 것
정답 코드
import sys
input = sys.stdin.readline
n = int(input())
colors = []
for _ in range(n) :
colors.append(list(map(int, input().split())))
paper = [[False] * 101 for _ in range(101)] # 좌표 0~100
cnt = 0
for r,c in colors :
for i in range(r, r+10) :
for j in range(c, c+10) :
if not paper[i][j] : # false 즉, 아직 색칠되지 않았다면 True로 바꾸기
paper[i][j] = True
cnt += 1
print(cnt)
다른 사람 코드 1
N = int(input())
array = [[0] * 100 for _ in range(100)] # 도화지 범위 초기화
for _ in range(N): # 입력 받은 도화지 개수만큼 돈다.
y1, x1 = map(int, input().split()) # 왼쪽아래 x,y 좌표를 받는다.
for i in range(x1, x1 + 10): # 세로를 돈다.
for j in range(y1, y1 + 10): # 가로를 돈다.
array[i][j] = 1 # 해당 범위 값을 0에서 1로 바꿔준다.
result = 0 # 넓이를 출력할 변수
for k in range(100): # 전체 도화지를 돌면서
result += array[k].count(1) # 1 개수만 세어준다
print(result)
각 행마다 1의 개수를 count ( ) 함수를 이용해 센다.
'코딩 테스트 > 백준' 카테고리의 다른 글
[Python] 백준 1181 단어 정렬 (1) | 2024.12.26 |
---|---|
[Python] 백준 2750 수 정렬하기 (0) | 2024.12.26 |
[Python] 백준 10798 세로 읽기 (0) | 2024.12.24 |
[Python] 백준 2738 행렬 덧셈 (0) | 2024.12.24 |
[Python] 백준 10809 알파벳 찾기 (0) | 2024.12.24 |