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를 통해서 구분하여 출력하였습니다.
코드 (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;
}
'코딩' 카테고리의 다른 글
[BOJ / 백준] 2562 최댓값 - C언어 (0) | 2022.08.03 |
---|---|
[BOJ / 백준] 10818 최소, 최대 - C언어 (0) | 2022.08.02 |
[C언어] 백준 BOJ 2445 별 찍기 8 (0) | 2022.07.27 |
[C언어] 백준 BOJ 2446 별 찍기 9 (0) | 2022.07.26 |
[C언어] 백준 BOJ 2444 별 찍기 7 (0) | 2022.07.25 |