https://www.acmicpc.net/problem/2445
2445번: 별 찍기 - 8
첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다.
www.acmicpc.net
문제 설명
이번 문제는 지금까지 풀었던 문제와 다르게 한 줄의 구성이 별이 먼저 출력이 된 후 공백이 출력되고 다시 별이 출력되는 형식입니다.
그리고 별의 개수는 증가를 하다가 다시 감소를 하고, 공백은 감소를 하다가 증가를 하는 모습을 띄고 있습니다.
앞서 풀었던 별 찍기 7번과 별 찍기 9번 처럼 하나의 반복문 i 에 작성하지 않고 출력을 반으로 나누어 출력하는 방법으로 해결하였습니다.
코드 (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;
}
'코딩' 카테고리의 다른 글
[BOJ / 백준] 10818 최소, 최대 - C언어 (0) | 2022.08.02 |
---|---|
[C언어] 백준 BOJ 10992 별 찍기 17 (0) | 2022.07.28 |
[C언어] 백준 BOJ 2446 별 찍기 9 (0) | 2022.07.26 |
[C언어] 백준 BOJ 2444 별 찍기 7 (0) | 2022.07.25 |
[C언어] 백준 BOJ 2443 별 찍기 6 (0) | 2022.07.24 |