C언어/백준

2444: 별 찍기 - 7

road23 2022. 8. 13. 23:39

브론즈 3

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

 

2444번: 별 찍기 - 7

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

www.acmicpc.net

 

-결과

 

-코드

#include <stdio.h>

int main() {
	int n;
	scanf("%d", &n);
	for (int i = 1; i <= n; i++) {
		for (int j = n-i; j > 0; j--)printf(" ");
		for (int k=2*i-1; k > 0; k--)printf("*");
		printf("\n");
	}
	for (int i = n-1; i > 0; i--) {
		for (int j = n-i; j > 0; j--)printf(" ");
		for (int k = 2*i-1; k > 0; k--)printf("*");
		printf("\n");
	}
	return 0;
}

 

-풀이

먼저 빈칸을 출력하고 빈칸이 출력된 후에 *을 출력하고 나면 다음 줄로 넘어가면 된다.

첫째 줄을 보면 빈칸 4개, * 1개, 다음줄이다.

둘째 줄을 보면 빈칸 3개, * 3개, 다음줄이다.

세번째 줄을 보면 빈칸 2개, * 5개, 다음줄이다.

네번째 줄을 보면 빈칸 1개, * 7개, 다음줄이다.

다섯번째 줄을 보면 빈칸 0개, * 9개, 다음줄이다.

여기서 규칙을 알 수 있다.

빈칸은 n - i개, *은 2i - 1개 (n은 첫째 줄에 입력한 수, i는 출력창의 i번째 줄을 의미한다.)가 출력되는 것을 알 수 있다.

이렇게 규칙을 토대로 for문을 작성하면 된다.