본문 바로가기
코딩/백준

[C언어] 백준 BOJ 10992 별 찍기 17

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

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

 

10992번: 별 찍기 - 17

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

www.acmicpc.net

문제 설명

별 찍기 17번 문제는 별로 삼각형이 출력은 되는데, 가운데가 비어있는 모습을 보여주고 있습니다.

 

별의 왼쪽에 나오는 공백은 지금까지 풀었던 문제와 규칙이 동일한 모습을 보여주고 있습니다.

별의 출력은 다음과 같이 규칙을 정리하였습니다.

 

1. 첫 번째 줄은 별이 하나만 출력된다.

2. 마지막 줄은 별이 n * 2 - 1개 출력된다.

3. 나머지 가운데 줄들은 별 + 공백 여러개 + 별 이 출력된다.

(공백은 i 가 1일때 1개, i 가 2일 때 3개...나오므로, i * 2 - 1 개 출력된다.)

 

이러한 규칙을 통해서 반복문 안에 별이 출력되는 부분을 조건문 if를 통해서 구분하여 출력하였습니다.

 

5를 출력했을 때 출력 결과

 

 

 

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

int main(void)
{
	int i, j, n;
	
	scanf("%d", &n);
	
	for(i = 0; i < n; i++)
	{
		//별 출력 전의 공백을 출력하는 부분 
		for(j = 0; j < n - 1 - i; j++)
		{
			printf(" ");
		}
		//별을 출력하는 부분
		
		//첫 번째 줄인 경우 
		if(i == 0)
		{
			printf("*");
		}
		//마지막 줄인 경우 
		else if(i == n-1)
		{
			for(j = 0; j < n * 2 - 1; j++)
			{
				printf("*");
			}
		}
		//나머지 가운데 줄인 경우 
		else
		{
			printf("*");
			for(j = 0; j < i * 2 - 1; j++)
			{
				printf(" ");
			}
			printf("*");
		}
		
		//줄의 끝에 엔터 출력 
		printf("\n");
	} 
	
	return 0;
}
반응형