본문 바로가기
코딩/백준

[C언어] 백준 BOJ 2445 별 찍기 8

by 김두루미 2022. 7. 27.
반응형

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

 

2445번: 별 찍기 - 8

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

www.acmicpc.net

문제 설명

이번 문제는 지금까지 풀었던 문제와 다르게 한 줄의 구성이 별이 먼저 출력이 된 후 공백이 출력되고 다시 별이 출력되는 형식입니다.

그리고 별의 개수는 증가를 하다가 다시 감소를 하고, 공백은 감소를 하다가 증가를 하는 모습을 띄고 있습니다.

앞서 풀었던 별 찍기 7번과 별 찍기 9번 처럼 하나의 반복문 i 에 작성하지 않고 출력을 반으로 나누어 출력하는 방법으로 해결하였습니다.

7을 입력했을 때 출력 결과

코드 (C언어)
#include <stdio.h>

int main(void)
{
	int i, j, n;
	
	scanf("%d", &n);
	
	//위쪽 출력 
	for(i = 0; i < n; i++)
	{
		for(j = 0; j < i+1; j++)
		{
			printf("*");
		}
		
		for(j = 0; j < (n * 2) - (i *2 + 2); j++)
		{
			printf(" ");	
		} 
		
		for(j = 0; j < i+1; j++)
		{
			printf("*");
		}
		
		printf("\n");
	} 
	//아래쪽 출력 : i를 0이 아닌, 1로 설정하여 위와 중복 출력되는 부분 조치 
	for(i = 1; i < n; i++)
	{
		for(j = 0; j < n-i; j++)
		{
			printf("*");
		}
		
		for(j = 0; j < i * 2; j++)
		{
			printf(" ");	
		} 
		
		for(j = 0; j < n-i; j++)
		{
			printf("*");
		}
		
		printf("\n");
	} 
	return 0;
}
반응형