[C]백준_2441 : 별 찍기 - 4

Alal11·2023년 1월 25일
0
post-thumbnail

출처

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


문제

첫째 줄에는 별 N개, 둘째 줄에는 별 N-1개, ..., N번째 줄에는 별 1개를 찍는 문제

하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오.


입력

첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.


출력

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


예제 입출력


알고리즘 분류

  • 구현

➡️문제 분석

이중 for문을 사용하여 줄 바꿈과 별, 공백을 출력하는 for문을 따로 만들어 준다.


➡️코드(⭕)

#include <stdio.h>

int main()
{
	int a;

	scanf("%d", &a);

	for (int i = 0; i < a; i++)
	{
		for (int j = 0; j < i; j++)
		{
			printf(" ");
		}
		for (int k = a - i; k > 0; k--)
		{
			printf("*");
		}
		printf("\n");
	}
}

➡️코드 분석

  1. a를 입력받고 i를 0부터 a-1까지 a번 반복하는 바깥 for문을 생성한다.

  2. 공백과 별을 출력하는 반복문을 따로 만들어준다.

    2-1. 공백은 0칸, 1칸, ..., a-1칸씩 늘어나므로 j는 0부터 1씩 증가하며 j<i 범위까지 반복하여 출력해준다.

    2-2. 별은 a개, a-1개, ..., 1개씩 줄어드니까 k를 a-i부터 1씩 감소하여 k>0 범위까지 반복하여 출력해준다.

  3. 바깥 for문으로 a번 만큼 안쪽 for문인 빈칸과 공백을 출력하는 과정이 끝난 뒤에 줄바꿈 \n을 1번씩 해주는 것을 반복한다.


➡️end

아직까진 혼자 풀 수 있는 난이도인데 푸는 속도가 좀 느리다ㅜ_ㅜ
별 개수 출력하는 반복문에서 k=a-i 부분을 생각해내는게 조금 걸렸다.

0개의 댓글