[백준 C++] 10994 별 찍기 - 19

이성훈·2022년 3월 7일
0

문제

예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.

입력

첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.

출력

첫째 줄부터 차례대로 별을 출력한다.

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

풀이

출력값을 보니 행,열크기가 같고, 규칙은 4n - 3 이다.
여기에서 총사각형은 n개 이고, 시작인덱스와 끝인덱스를 n번마다 수정해주면서 for문을 돌리면된다.

#define _CRT_SECURE_NO_WARNINGS 
#include <bits/stdc++.h>

int main(int n) {
	scanf("%d", &n);
	int size = 4 * n - 3;
	char** star = new char* [size];
	for (int i = 0; i < size; i++) {
		star[i] = new char[size];
		for (int j = 0; j < size; j++)
			star[i][j] = ' '; //공백문자로 초기화
	}
	int start = 0;
	int end = 4 * n - 4;

	for (int i = 0; i < n; i++) {
		for (int j = start; j <= end; j++) {
			star[start][j] = '*'; //상단 한줄

			star[j][start] = '*'; //좌측 한줄

			star[j][end] = '*'; //우측 한줄

			star[end][j] = '*'; //하단 한줄
		}
		start += 2;
		end -= 2;
	}

	for (int i = 0; i < size; i++) {
		for (int j = 0; j < size; j++)
			printf("%c", star[i][j]);
		printf("\n");
	}

	return 0;
}
profile
I will be a socially developer

0개의 댓글