Algorithm/๋ฌธ์ œํ’€์ด

[๋ฐฑ์ค€] 2628๋ฒˆ - ์ข…์ด์ž๋ฅด๊ธฐ (C++)

moaoh 2023. 7. 14. 00:24

๋ฌธ์ œ

 

์•„๋ž˜ <๊ทธ๋ฆผ 1>๊ณผ ๊ฐ™์ด ์ง์‚ฌ๊ฐํ˜• ๋ชจ์–‘์˜ ์ข…์ด๊ฐ€ ์žˆ๋‹ค. ์ด ์ข…์ด๋Š” ๊ฐ€๋กœ๋ฐฉํ–ฅ๊ณผ ์„ธ๋กœ ๋ฐฉํ–ฅ์œผ๋กœ 1ใŽ๋งˆ๋‹ค ์ ์„ ์ด ๊ทธ์–ด์ ธ ์žˆ๋‹ค. ๊ฐ€๋กœ ์ ์„ ์€ ์œ„์—์„œ ์•„๋ž˜๋กœ 1๋ฒˆ๋ถ€ํ„ฐ ์ฐจ๋ก€๋กœ ๋ฒˆํ˜ธ๊ฐ€ ๋ถ™์–ด ์žˆ๊ณ , ์„ธ๋กœ ์ ์„ ์€ ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ๋ฒˆํ˜ธ๊ฐ€ ๋ถ™์–ด ์žˆ๋‹ค.

<๊ทธ๋ฆผ 1>

์ ์„ ์„ ๋”ฐ๋ผ ์ด ์ข…์ด๋ฅผ ์นผ๋กœ ์ž๋ฅด๋ ค๊ณ  ํ•œ๋‹ค. ๊ฐ€๋กœ ์ ์„ ์„ ๋”ฐ๋ผ ์ž๋ฅด๋Š” ๊ฒฝ์šฐ๋Š” ์ข…์ด์˜ ์™ผ์ชฝ ๋์—์„œ ์˜ค๋ฅธ์ชฝ ๋๊นŒ์ง€, ์„ธ๋กœ ์ ์„ ์ธ ๊ฒฝ์šฐ๋Š” ์œ„์ชฝ ๋์—์„œ ์•„๋ž˜์ชฝ ๋๊นŒ์ง€ ํ•œ ๋ฒˆ์— ์ž๋ฅธ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, <๊ทธ๋ฆผ 1>์˜ ๊ฐ€๋กœ ๊ธธ์ด 10ใŽ์ด๊ณ  ์„ธ๋กœ ๊ธธ์ด 8ใŽ์ธ ์ข…์ด๋ฅผ 3๋ฒˆ ๊ฐ€๋กœ ์ ์„ , 4๋ฒˆ ์„ธ๋กœ ์ ์„ , ๊ทธ๋ฆฌ๊ณ  2๋ฒˆ ๊ฐ€๋กœ ์ ์„ ์„ ๋”ฐ๋ผ ์ž๋ฅด๋ฉด <๊ทธ๋ฆผ 2>์™€ ๊ฐ™์ด ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ข…์ด ์กฐ๊ฐ์œผ๋กœ ๋‚˜๋‰˜๊ฒŒ ๋œ๋‹ค. ์ด๋•Œ ๊ฐ€์žฅ ํฐ ์ข…์ด ์กฐ๊ฐ์˜ ๋„“์ด๋Š” 30ใŽ ์ด๋‹ค.

<๊ทธ๋ฆผ 2>

์ž…๋ ฅ์œผ๋กœ ์ข…์ด์˜ ๊ฐ€๋กœ ์„ธ๋กœ ๊ธธ์ด, ๊ทธ๋ฆฌ๊ณ  ์ž˜๋ผ์•ผํ•  ์ ์„ ๋“ค์ด ์ฃผ์–ด์งˆ ๋•Œ, ๊ฐ€์žฅ ํฐ ์ข…์ด ์กฐ๊ฐ์˜ ๋„“์ด๊ฐ€ ๋ช‡ ใŽ ์ธ์ง€๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.


์ž…๋ ฅ

์ฒซ์ค„์—๋Š” ์ข…์ด์˜ ๊ฐ€๋กœ์™€ ์„ธ๋กœ์˜ ๊ธธ์ด๊ฐ€ ์ฐจ๋ก€๋กœ ์ž์—ฐ์ˆ˜๋กœ ์ฃผ์–ด์ง„๋‹ค. ๊ฐ€๋กœ์™€ ์„ธ๋กœ์˜ ๊ธธ์ด๋Š” ์ตœ๋Œ€ 100ใŽ์ด๋‹ค. ๋‘˜์งธ ์ค„์—๋Š” ์นผ๋กœ ์ž˜๋ผ์•ผํ•˜๋Š” ์ ์„ ์˜ ๊ฐœ์ˆ˜๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์…‹์งธ ์ค„๋ถ€ํ„ฐ ๋งˆ์ง€๋ง‰ ์ค„๊นŒ์ง€ ํ•œ ์ค„์— ์ ์„ ์ด ํ•˜๋‚˜์”ฉ ์•„๋ž˜์™€ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ์ž…๋ ฅ๋œ๋‹ค. ๊ฐ€๋กœ๋กœ ์ž๋ฅด๋Š” ์ ์„ ์€ 0๊ณผ ์ ์„  ๋ฒˆํ˜ธ๊ฐ€ ์ฐจ๋ก€๋กœ ์ฃผ์–ด์ง€๊ณ , ์„ธ๋กœ๋กœ ์ž๋ฅด๋Š” ์ ์„ ์€ 1๊ณผ ์ ์„  ๋ฒˆํ˜ธ๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ž…๋ ฅ๋˜๋Š” ๋‘ ์ˆซ์ž ์‚ฌ์ด์—๋Š” ๋นˆ ์นธ์ด ํ•˜๋‚˜์”ฉ ์žˆ๋‹ค.


์ถœ๋ ฅ

์ฒซ์งธ ์ค„์— ๊ฐ€์žฅ ํฐ ์ข…์ด ์กฐ๊ฐ์˜ ๋„“์ด๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ๋‹จ, ๋„“์ด์˜ ๋‹จ์œ„๋Š” ์ถœ๋ ฅํ•˜์ง€ ์•Š๋Š”๋‹ค.


์˜ˆ์ œ ์ž…๋ ฅ 1 ๋ณต์‚ฌ

10 8 
3 
0 3 
1 4 
0 2

์˜ˆ์ œ ์ถœ๋ ฅ 1 ๋ณต์‚ฌ

30

ํ’€์ด๊ณผ์ •

์ ‘๊ทผ์„ ์–ด๋–ป๊ฒŒ ํ•˜๋Š”๊ฐ€๊ฐ€ ์ค‘์š”ํ–ˆ๋˜ ๋ฌธ์ œ๊ฐ™๋‹ค.

์ ‘๊ทผ์„ ํ• ๋•Œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์‚ฌ๊ฐํ˜•์˜ ๋„“์ด๋ฅผ ๊ตฌํ•˜๋Š” ๊ณต์‹์ด ์‚ฌ๊ฐํ˜• ๋„“์ด: ๊ฐ€๋กœ X ์„ธ๋กœ ์ด๋ฏ€๋กœ ์ฆ‰ ๊ฐ€์žฅ ํฐ ์‚ฌ๊ฐํ˜•์€

๊ฐ€์žฅ ํฐ ๊ฐ€๋กœ * ๊ฐ€์žฅ ํฐ ์„ธ๋กœ ๋ผ๋Š” ์‚ฌ์‹ค์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋„ํ˜•์„ ์•„๋ฌด๋ฆฌ ๊ฐ€๋กœ๋กœ ์ž๋ฅด๊ณ  ์„ธ๋กœ๋กœ ์ž๋ฅธ๋‹ค๊ณ  ํ•ด๋„

์งค๋ฆฐ ์„ธ๋กœ ์ค‘์— ๊ฐ€์žฅ ๊ธด ๊ธธ์ด * ์งค๋ฆฐ ๊ฐ€๋กœ ์ค‘์— ๊ฐ€์žฅ ๊ธด ๊ธธ์ด๊ฐ€ ๊ฐ€์žฅ ํฐ ์‚ฌ๊ฐํ˜•์„ ์ฐพ๋Š” ๊ทœ์น™์ด ๋˜๊ฒŒ ๋œ๋‹ค.

๊ทธ๋ž˜์„œ ๋“ค์–ด์žˆ๋Š” ์ž…๋ ฅ๊ฐ’๋“ค์„ ํฌ๊ธฐ์ˆœ์œผ๋กœ ์ •๋ ฌ์„ ํ•œ ๋‹ค์Œ, ๊ฐ€์žฅ ๋ฒ”์œ„๊ฐ€ ๋„“์€ ์„ธ๋กœ๊ธธ์ด์™€ ๊ฐ€์žฅ ๋ฒ”์œ„๊ฐ€ ๋„“์€ ๊ฐ€๋กœ๊ธธ์ด๋ฅผ ๊ณฑํ•˜๊ฒŒ ๋˜๋ฉด

๋ฌธ์ œ์—์„œ ์›ํ•˜๋Š” ๊ฒฐ๊ณผ๊ฐ’์„ ๊ตฌํ•  ์ˆ˜ ์žˆ๊ฒŒ๋˜๋Š” ๋ฌธ์ œ์˜€๋‹ค.

code

#include <iostream>
#include <algorithm>
#include <vector>

// ๊ฐ€๋กœ 0, ์„ธ๋กœ 1
int		main(void)
{
	int		y, x, n, dir, num, rowMax = -1, columnMax = -1;
	std::vector <int> row, column;

	std::cin >> x >> y;
	std::cin >> n;
	row.push_back(0);
	row.push_back(x);
	column.push_back(0);
	column.push_back(y);
	for(int i = 0; i < n; i++) {
		std::cin >> dir >> num;
		if (dir == 1) row.push_back(num);
		else column.push_back(num);
	}
	std::sort(row.begin(), row.end());
	std::sort(column.begin(), column.end());
	
	for (int i = 0; i < row.size(); i++)
		if (row.size() > i + 1 && row[i + 1] - row[i] > rowMax)
			rowMax = row[i + 1] - row[i];
	for (int i = 0; i < column.size(); i++)
		if (column.size() > i + 1 && column[i + 1] - column[i] > columnMax)
			columnMax = column[i + 1] - column[i];
	std::cout << rowMax * columnMax;
	
	return (0);
}


ํ›„๊ธฐ

๋ฌธ์ œ์˜ ์ถœ์ฒ˜๋ฅผ ๋ณด๋‹ˆ ์ดˆ๋“ฑ๋ถ€ ์˜ฌ๋ฆผํ”ผ์•„๋“œ ๋ฌธ์ œ๋”๋ผ..

์ €๊ฑธ ๋ณด๊ณ  "์š”์ฆ˜ ์ดˆ๋“ฑ๋ถ€์• ๋“ค์€ ์ €๋Ÿฐ ๋ฌธ์ œ๋ฅผ ํ‘ธ๋Š”๊ตฌ๋‚˜ ๋Œ€๋‹จํ•˜๋‹ค" ๋ผ๊ณ  ์ƒ๊ฐ์ด ๋“ค์–ด๊ฐ€์ง€๊ณ  ๋” ์—ด์‹ฌํžˆ ํ•ด์•ผ๊ฒ ๋‹ค๋ผ๊ณ  ์ƒ๊ฐ์„ ํ•˜๊ฒŒ๋˜์—ˆ๋‹ค.