문제
첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제
하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오.
문제 풀이
#include <stdio.h>
#include <string.h>
int main(void)
{
int count;
int i;
int j;
int k;
scanf("%d",&count);
for(i=0; i<count;i++)
{
for(j=count-i-1;j!=0;j--)
printf(" ");
for(k=0;k<i+1;k++)
printf("*");
printf("\n");
}
return 0;
}
- 해당 문제는 공백과 *를 행이 늘어가면서 개수가 바뀌므로 1) 행을 증가 시키는 for문 2) 공백을 위한 for문 3) *을 위한 for문이므로, 총 3개의 for문이 필요합니다.
- 행을 증가 시키는 for문 안에 공백과 *을 위한 for문 총 2개를 입력합니다.
공백을 위한 for문:
for(j=count-i-1; j!=0; j--) 로 선언하였습니다. 초기부터 여러 개의 공백이 입력되므로, 필요한 개수만큼 초기화하고 이를 줄여나갑니다.
*을 위한 for문:
for(k=0; k<i+1; k++) 로 선언하였습니다. 초기 k=0부터 k=i까지 개수를 행마다 점점 늘려나갑니다.
'C C++ > C C++ 백준' 카테고리의 다른 글
C언어 백준 2441번 별 찍기 - 4 (0) | 2022.05.22 |
---|---|
C언어 백준 2440번 별 찍기 - 3 (0) | 2022.05.22 |
C언어 백준 2438번 별 찍기 - 1 (0) | 2022.05.21 |
C언어 백준 10818번 최소, 최대 (0) | 2022.05.21 |
C언어 백준 8393번 합 (0) | 2022.05.21 |
댓글