๊ธ€ ์ž‘์„ฑ์ž: ๋˜ฅํด๋ฒ .
๋ฐ˜์‘ํ˜•
ํ•ด๋‹น ๊ธ€์˜ ๋‚ด์šฉ์€ ์ตœ์ ์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์•„๋‹Œ ๊ธ€์“ด์ด์˜ ์ฃผ๊ด€์ ์ธ ํ’€์ด์ž…๋‹ˆ๋‹ค. ๋” ์ข‹์€ ํ’€์ด๊ฐ€ ์žˆ๋‹ค๋ฉด ๋Œ“๊ธ€๋กœ ํ”ผ๋“œ๋ฐฑ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค(__)

 

๋งํฌ


https://www.acmicpc.net/problem/2447

 

2447๋ฒˆ: ๋ณ„ ์ฐ๊ธฐ - 10

์žฌ๊ท€์ ์ธ ํŒจํ„ด์œผ๋กœ ๋ณ„์„ ์ฐ์–ด ๋ณด์ž. N์ด 3์˜ ๊ฑฐ๋“ญ์ œ๊ณฑ(3, 9, 27, ...)์ด๋ผ๊ณ  ํ•  ๋•Œ, ํฌ๊ธฐ N์˜ ํŒจํ„ด์€ N×N ์ •์‚ฌ๊ฐํ˜• ๋ชจ์–‘์ด๋‹ค. ํฌ๊ธฐ 3์˜ ํŒจํ„ด์€ ๊ฐ€์šด๋ฐ์— ๊ณต๋ฐฑ์ด ์žˆ๊ณ , ๊ฐ€์šด๋ฐ๋ฅผ ์ œ์™ธํ•œ ๋ชจ๋“  ์นธ์— ๋ณ„์ด ๏ฟฝ

www.acmicpc.net

 

๋ฌธ์ œ ์„ค๋ช…


 ์žฌ๊ท€์ ์ธ ํŒจํ„ด์œผ๋กœ ๋ณ„์„ ์ฐ์–ด ๋ณด์ž.

N์ด 3์˜ ๊ฑฐ๋“ญ์ œ๊ณฑ(3, 9, 27,...)์ด๋ผ๊ณ  ํ•  ๋•Œ, ํฌ๊ธฐ N์˜ ํŒจํ„ด์€ N×N ์ •์‚ฌ๊ฐํ˜• ๋ชจ์–‘์ด๋‹ค.

ํฌ๊ธฐ 3์˜ ํŒจํ„ด์€ ๊ฐ€์šด๋ฐ์— ๊ณต๋ฐฑ์ด ์žˆ๊ณ , ๊ฐ€์šด๋ฐ๋ฅผ ์ œ์™ธํ•œ ๋ชจ๋“  ์นธ์— ๋ณ„์ด ํ•˜๋‚˜์”ฉ ์žˆ๋Š” ํŒจํ„ด์ด๋‹ค.

***
* *
***

N์ด 3๋ณด๋‹ค ํด ๊ฒฝ์šฐ, ํฌ๊ธฐ N์˜ ํŒจํ„ด์€ ๊ณต๋ฐฑ์œผ๋กœ ์ฑ„์›Œ์ง„ ๊ฐ€์šด๋ฐ์˜ (N/3) ×(N/3) ์ •์‚ฌ๊ฐํ˜•์„ ํฌ๊ธฐ N/3์˜ ํŒจํ„ด์œผ๋กœ ๋‘˜๋Ÿฌ์‹ผ ํ˜•ํƒœ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํฌ๊ธฐ 27์˜ ํŒจํ„ด์€ ์˜ˆ์ œ ์ถœ๋ ฅ 1๊ณผ ๊ฐ™๋‹ค.

 

 

 

์ œํ•œ ์กฐ๊ฑด


์ฒซ์งธ ์ค„์— N์ด ์ฃผ์–ด์ง„๋‹ค. N์€ 3์˜ ๊ฑฐ๋“ญ์ œ๊ณฑ์ด๋‹ค. ์ฆ‰ ์–ด๋–ค ์ •์ˆ˜ k์— ๋Œ€ํ•ด N=3k์ด๋ฉฐ, ์ด๋•Œ 1 ≤ k < 8์ด๋‹ค.

 

 

 

์ž…์ถœ๋ ฅ ์˜ˆ


<์ž…๋ ฅ 1>

27

 

<์ถœ๋ ฅ 1>

***************************
* ** ** ** ** ** ** ** ** *
***************************
***   ******   ******   ***
* *   * ** *   * ** *   * *
***   ******   ******   ***
***************************
* ** ** ** ** ** ** ** ** *
***************************
*********         *********
* ** ** *         * ** ** *
*********         *********
***   ***         ***   ***
* *   * *         * *   * *
***   ***         ***   ***
*********         *********
* ** ** *         * ** ** *
*********         *********
***************************
* ** ** ** ** ** ** ** ** *
***************************
***   ******   ******   ***
* *   * ** *   * ** *   * *
***   ******   ******   ***
***************************
* ** ** ** ** ** ** ** ** *
***************************

 

ํ’€์ด


#include <stdio.h>
#include <iostream>

const int MININUM_UNIT = 3;
int n;
char** result;

void InputStar(int num, int rowIndex, int colIndex)
{
	if (num < n && rowIndex == 0 && colIndex == 0)
	{
		InputStar(num * 3, 0, 0);
	}

	int startIndex = num / MININUM_UNIT;
	int endIndex = (num / MININUM_UNIT) * 2;

	for (int i = startIndex + rowIndex; i < endIndex + rowIndex; i++)
	{
		for (int j = startIndex + colIndex; j < endIndex + colIndex; j++)
		{
			result[i][j] = ' ';
		}
	}

	if (rowIndex + num > n - 1 && colIndex + num > n - 1)
	{
		return;
	}
	if (rowIndex + num > n - 1)
	{
		InputStar(num, 0, colIndex + num);
		return;
	}
	InputStar(num, rowIndex + num, colIndex);
}

int main() 
{
	scanf("%d", &n);

	result = new char*[n];
	for (int i = 0; i < n; i++)
	{
		result[i] = new char[n+1];
		for (int j = 0; j < n; j++)
		{
			result[i][j] = '*';
		}
	}

	InputStar(MININUM_UNIT, 0, 0);

	for (int i = 0; i < n; i++)
	{
		result[i][n] = '\0';
		printf("%s\n", result[i]);
	}

	return 0;
}

 

 

ํ’€์ด ์„ค๋ช…


 ๋ฌธ์ œ์—์„œ ํฌ์ธํŠธ๋Š” ํŒจํ„ด์˜ ๊ฐ€์šด๋ฐ์— ๊ณต๋ฐฑ์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ํฌ๊ธฐ๊ฐ€ 27์ธ ์ •์‚ฌ๊ฐํ˜•์€ ๊ฐ€์šด๋ฐ์— 9x9 ๋นˆ ์ •์‚ฌ๊ฐํ˜•์ด ์žˆ๊ณ  ํฌ๊ธฐ๊ฐ€ 9์ธ ์ •์‚ฌ๊ฐํ˜•์€ ๊ฐ€์šด๋ฐ์— 3x3์˜ ๋นˆ ์ •์‚ฌ๊ฐํ˜•์ด ์žˆ๋‹ค.

 ์ž…๋ ฅ๋ฐ›์€ N๋งŒํผ N x N ์ •์‚ฌ๊ฐํ˜• ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•ด์ฃผ๊ณ  ์žฌ๊ท€ํ•จ์ˆ˜๋กœ ๊ฐ€์šด๋ฐ ๋ฒ”์œ„ ๋ถ€๋ถ„์„ ์ง€์›Œ์ฃผ๋Š” ์ „๋žต์„ ์‚ฌ์šฉํ–ˆ๋‹ค.

 

 

<๊ทธ๋ฆผ 1> ํฌ๊ธฐ๊ฐ€ 9์ธ ์ •์‚ฌ๊ฐํ˜•

Step 1. N x N ์ •์‚ฌ๊ฐํ˜• ๋ฐฐ์—ด์„ *๋กœ ๋ชจ๋‘ ์ฑ„์›Œ์ค€๋‹ค.

 

<๊ทธ๋ฆผ 2> ์ตœ์†Œ ๋‹จ์œ„์ธ ํฌ๊ธฐ๊ฐ€ 3์ธ ์ •์‚ฌ๊ฐํ˜• ๋ถ€ํ„ฐ ๊ฐ€์šด๋ฐ ๋น„์›Œ์ฃผ๊ธฐ

Step 2. ํฌ๊ธฐ๊ฐ€ 3์ธ ์ •์‚ฌ๊ฐํ˜•(์ตœ์†Œ ๋‹จ์œ„)๋ถ€ํ„ฐ ์ •์‚ฌ๊ฐํ˜•์˜ ๊ฐ€์šด๋ฐ๋ฅผ ๋น„์›Œ์ค€๋‹ค.

ํ•˜๋‚˜์˜ row๋ฅผ ๋‹ค ์ˆœํšŒํ–ˆ๋‹ค๋ฉด ๋‹ค์Œ row๋กœ ๋„˜์–ด๊ฐ„๋‹ค. ([1, 2, 3] -> [4, 5,...], ->...)

 

 

<๊ทธ๋ฆผ 3> ๋‹ค์Œ ํฌ๊ธฐ ๋‹จ์œ„์ธ 9์ธ ์ •์‚ฌ๊ฐํ˜• ๊ฐ€์šด๋ฐ ๋น„์›Œ์ฃผ๊ธฐ

Step 3. ๊ฐ™์ด, ๋‹ค์Œ ํฌ๊ธฐ ๋‹จ์œ„์ธ 9์ธ ์ •์‚ฌ๊ฐํ˜•์˜ ๊ฐ€์šด๋ฐ๋ฅผ ๋น„์›Œ์ค€๋‹ค. ์ด ๊ณผ์ •์„ ํฌ๊ธฐ ๋‹จ์œ„๊ฐ€ N์— ๋„๋‹ฌํ•  ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•œ๋‹ค.

๋ฐ˜์‘ํ˜•