⌨️CS-PS/백준_수학&구현

[Baekjoon/백준][2446][C/C++] 별 찍기 - 9

미르의 블로그 2023. 1. 19. 00:11
728x90
반응형
『목차』
0. 개요

1. 문제
2. 풀이
3. 코드

0. 개요

별찍기 - 7 문제와 99% 동일한 문제. 계속 비슷한 유형 풀다 보니까 문제가 거기서 거기다. '별찍기 - 7번'을 참조하자.

[Baekjoon][2444][C/C++] 별 찍기 - 7

 

1. 문제

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

 

2446번: 별 찍기 - 9

첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다.

www.acmicpc.net

[문제]

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

[입력]

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

[출력]

첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다.

[예제 입력 1]

5

[예제 출력 1]

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

2. 풀이

'별찍기 - 7' 문제와 99% 동일한 문제. '별찍기 - 7' 문제에서, '아래쪽'파트와 '위쪽'파트의 순서만 바꿔주면 문제가 99% 해결된다. 나머지 1%의 다른 점도 '별찍기 - 7'을 이해했다면 충분히 쉽게 해결할 수 있다.

3. 코드

#pragma warning (disable:4996)
#include <stdio.h>

int main(int argc, char* argv[]) {
	int N; scanf("%d", &N);

	/* 위쪽 */
	for (int i = 1; i <= N; i++) {

		/* 공백 찍기 */
		for (int j = 1; j <= N - i; j++)
			printf(" ");

		/* 별 찍기 */
		for (int j = 1; j <= i; j++)
			printf("*");

		/* 개행 */
		printf("\n");
	}

	/* 아래쪽 */
	for (int i = N-1; i >= 1; i--) {

		/* 공백 찍기 */
		for (int j = 1; j <= N - i; j++)
			printf(" ");

		/* 별 찍기 */
		for (int j = 1; j <= i; j++)
			printf("*");

		/* 개행 */
		printf("\n");
	}

	return 0;
}
728x90
반응형