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

[Baekjoon/백준][2443][C/C++] 별 찍기 - 6

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

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

0. 개요

바로 전 문제인 2442번 문제에서 코드 딱 한 줄만 수정해 주면 바로 풀린다. (∵출력 순서가 2442번 문제의 정확한 역순이기 때문.)

이전 발행글을 참조하자. [Baekjoon][2442][C/C++] 별 찍기 - 5

1. 문제

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

 

2443번: 별 찍기 - 6

첫째 줄에는 별 2×N-1개, 둘째 줄에는 별 2×N-3개, ..., N번째 줄에는 별 1개를 찍는 문제 별은 가운데를 기준으로 대칭이어야 한다.

www.acmicpc.net

[문제]

첫째 줄에는 별 2×N-1개, 둘째 줄에는 별 2×N-3개, ..., N번째 줄에는 별 1개를 찍는 문제

별은 가운데를 기준으로 대칭이어야 한다.

[입력]

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

[출력]

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

[예제 입력 1]

5

[예제 출력 1]

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

2. 풀이

2442번 문제와 원리도 똑같고, 출력 방법도 똑같다. 유일하게 달라진 점은 가장 바깥쪽 for문의 구문이

for (int i = 1; i <= n; i++) //2442번

에서

for (int i = n; i >= 1; i--) //2443번

로 바뀐 것 뿐이다.

 

2442번 같은 경우는 별의 개수가 1개에서 부터 2n-1개 까지 오름차순으로 증가했고,

2443번 같은 경우는 별의 개수가 2n-1개에서 부터 1개 까지 내림차순으로 감소하기 때문이다.

3. 코드

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

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

	for (int i = n; i >= 1; i--) { //2442번 문제와의 유일한 차이.

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

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

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

	return 0;
}
728x90
반응형