CodingTest/Baekjoon

[baekjoon] 백준 1531번(파이썬): 투명

JunJangE 2022. 3. 15. 01:10

문제

 

1531번: 투명

첫째 줄에 N과 M이 주어진다. N은 0보다 크거나 같고, 50보다 작거나 같다. M은 0보다 크거나 같고, 50보다 작거나 같다. 둘째 줄부터 N개의 줄에 종이의 좌표가 주어진다. 왼쪽 아래 모서리의 x, y좌

www.acmicpc.net

알고리즘

- 일반 구현 문제로 문제를 이해하면 쉽게 풀 수 있다.

- 반복문을 통해 불투명한 종이를 확인하여 불투명한 종이로 가려지는 그림에 카운트한다.

- 반복문을 통해 모든 그림을 확인하여 m개 이상 불투명한 종이가 올라가 있는 그림을 카운트한다.

- 카운트된 그림의 개수를 출력한다. 

코드

import sys

n, m = map(int, sys.stdin.readline().split())
drawing = [[0 for _ in range(100)] for _ in range(100)] # 그림
cnt = 0 # 모자이크 중에 보이지 않는 그림의 개수

# 반복문을 통해 불투명한 종이를 확인
for _ in range(n):
    x1, y1, x2, y2 = map(int, sys.stdin.readline().split())

    # 반복문을 통해 불투명한 종이의
    # 왼쪽 아래 모서리 좌표와 오른쪽 위 모서리 좌표에
    # 포함되는 그림을 카운트
    for i in range(x1, x2 + 1):
        for j in range(y1, y2 + 1):
            drawing[i - 1][j - 1] += 1

# 반복문을 통해 m개 이상 불투명한 종이가 올라가 있는 그림을 카운트
for i in range(100):
    for j in range(100):
        if drawing[i][j] > m:
            cnt += 1

print(cnt)

github

 

GitHub - junjange/CodingTest: 내가 푼 코딩 테스트 문제와 해결법

내가 푼 코딩 테스트 문제와 해결법. Contribute to junjange/CodingTest development by creating an account on GitHub.

github.com