티스토리 뷰

728x90
반응형

백준 온라인 저지(BOJ) 2439번 별찍기 - 2

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

 

2439번: 별 찍기 - 2

첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오.

www.acmicpc.net

* 사용언어 : C언어, C++

 

1. 문제

첫 번째 줄에 1개, 두 번째 줄에 2개, ... n번째 줄에 n개의 별을 출력

단, 오른쪽 정렬로 출력

 

2. 풀이

별찍기 - 1 보다 약간 난이도가 있는 문제입니다.

앞선 문제에서 설명했듯이, 바깥쪽 for문 (i)은 몇 번째 줄 인지를 나타내고,

 

안쪽 for문 (j)는 해당 줄에 몇 개의 문자를 출력할지 정해줍니다.

공백이 n - i 개, 별이 i 개 필요하므로 해당되는 만큼 for 문을 2개 사용하여 출력합니다.

그리고 안쪽 for문이 끝나면 개행을 해줍니다.

 

개행은 printf("\n") 로도 가능하지만,

변수 출력이 없기 때문에 기능이 적은 puts("") 함수를 사용했습니다.

(수행 속도가 약간 빠르다고 합니다)

 

3. 코드

#include <stdio.h>

int main() {
    int n;
    scanf("%d", &n);
    
    for (int i = 1; i <= n; ++i) {
        for (int j = 1; j <= n - i; ++j) printf(" ");
        for (int j = 1; j <= i; ++j) printf("*");
        puts("");
    }
    return 0;
}
728x90
반응형
댓글