코딩 문제풀이/백준

백준 1531. 투명

배3 2025. 6. 23. 02:48

[문제]

유형: 구현/시뮬레이션

언어: C++

난이도: 실5

사이트: https://www.acmicpc.net/problem/1531

 


[리뷰]

쟁점: 2차원 배열에 겹친 수를 누적하기

종이 관련 문제는 2차원 배열에 값을 저장하여 이용하는 문제가 많다.

종이를 추가할 때마다, 종이에 대한 배열 위치에 값을 누적한다.

그 누적 값이 M을 넘기는 위치 개수를 센다.

 

학습 내용.

none

 

해답.

입력받을 때 img[x][y] 값 1 증가.

모두 입력 받은 후, img[x][y] > M인 개수 출력.

 

[코드]

// p8320. 직사각형을 만드는 방법
// C++로 다시 풀기
#pragma warning(disable:4996)
#include<iostream>
using namespace std;

int img[101][101];

int main(void)
{
	int N, M;
	int xs, ys, xe, ye;
	int ans = 0;
	
	cin >> N >> M;
	while (N--)
	{
		cin >> xs >> ys >> xe >> ye;
		for (int x = xs; x <= xe; ++x)
		{
			for (int y = ys; y <= ye; ++y)
			{
				++img[x][y];
			}
		}
	}
	
	for (int x = 1; x <= 100; ++x)
	{
		for (int y = 1; y <= 100; ++y)
		{
			if (img[x][y] > M)	ans++;
		}
	}
	cout << ans << endl;

	return 0;
}

'코딩 문제풀이 > 백준' 카테고리의 다른 글

백준 8320. 직사각형을 만드는 방법  (0) 2025.06.23
백준 2851. 슈퍼마리오  (0) 2025.06.23
백준 14470. 전자레인지  (0) 2025.06.22