baekjoon 2447

p3pwp3p·2022년 6월 17일
0

baekjoon

목록 보기
23/44

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


Idea

3의 거듭제곱인 값(3, 9, 27 ...)을 입력받는데, 3을 입력받는 경우 3x3인 정사각형 별이 그려지고 9인 경우 9x9, 27인 경우 27x27의 정사각형이 그려진다. 출력값에는 별과 공백 두 가지가 있으며 두 가지 조건을 찾아 공식을 유도해내면 문제를 풀 수 있다.


Code

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>

// condition 1 printSpace
// if row % N == 1 && col % N == 1
// -> 
// condition 2 printStar
// else 

void printSpace();
void printStar(int N, int row, int col);

int main(void) {
	int N;

	scanf("%d", &N);

	for (int i = 0; i < N; i++) {
		for (int j = 0; j < N; j++) {
			printStar(N, i, j);
		}
		printf("\n");
	}

	return 0;
}

void printSpace() {
	printf(" ");
}

void printStar(int N, int row, int col) {
	if ((row / N) % 3 == 1 && (col / N) % 3 == 1) {
		printSpace();
	}
	else {
		if (N / 3 == 0) {
			printf("*");
		}
		else {
			printStar(N / 3, row, col);
		}
	}
}
profile
💭(。•̀ᴗ-)✧

0개의 댓글