[백준/Python] 2563번 색종이

2025. 2. 26. 13:30·알고리즘문제풀이

문제

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
'알고리즘문제풀이' 카테고리의 다른 글
  • [백준/Python] 11652번 카드
  • [백준/Python] 7785번 회사에 있는 사람
  • [백준/Python] 2606번 바이러스
  • [백준/Python] 11659번 구간 합 구하기 4
jungyn
jungyn
jungyn 님의 블로그 입니다.
  • jungyn
    jungyn 님의 블로그
    jungyn
  • 전체
    오늘
    어제
    • 분류 전체보기 (36)
      • 알고리즘문제풀이 (31)
      • 제로인턴 (5)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    제로인턴
    통계헉
    백준
    사전직무교육
    수들의 합 2
    2차원행렬
    1629
    DP
    11729
    solved.ac
    스택 2
    18110
    교점개수
    너비우선탐색
    후기
    다이나믹프로그래밍
    28278
    1847
    2161
    BFS
    2563
    스택
    프로그래머스
    2606
    counter
    SYS
    스택 수열
    시간초과
    카드1
    2108
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
jungyn
[백준/Python] 2563번 색종이
상단으로

티스토리툴바