[백준] 2447. 별 찍기 - 10

leeeha·2023년 10월 31일
0

백준

목록 보기
125/186
post-thumbnail

문제

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

풀이

참고: https://wooono.tistory.com/403

#include <iostream>
#include <string> 
#include <algorithm>
#include <vector> 
#include <set> 
using namespace std;

bool isBlankPosition(int i, int j, int n) {
	return (i / (n/3)) % 3 == 1 && (j / (n/3)) % 3 == 1; 
}

void divide(int i, int j, int n){
	// 현재 탐색하고 있는 정사각형 크기가 1이면 
	// 더 이상 탐색할 공백 위치가 없으므로 * 출력 
	if(n == 1){
		cout << "*";
	}
	// (i, j)가 현재 탐색하고 있는 정사각형 크기의 
	// 가운데 위치라면 공백 출력 
	else if(isBlankPosition(i, j, n)){
		cout << " ";
	}
	// n 크기를 3분의 1로 줄여서 해당 정사각형 기준으로 
	// 가운데 위치한 좌표를 공백으로 출력 
	else{ 
		divide(i, j, n / 3); 
	}
}

int main()
{ 
	ios::sync_with_stdio(0);
	cin.tie(0);

	int n; 
	cin >> n; 

	for(int i = 0; i < n; i++){
		for(int j = 0; j < n; j++){
			divide(i, j, n);
		}
		cout << "\n"; 
	}
	
	return 0;
}
profile
습관이 될 때까지 📝

0개의 댓글