티스토리 뷰

728x90
반응형

백준 온라인 저지(BOJ) 2441번 별찍기 - 4

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

 

2441번: 별 찍기 - 4

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

www.acmicpc.net

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

 

1. 문제

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

단, 오른쪽 정렬로 출력

 

2. 풀이

별찍기 - 2, 3 을 푸셨다면 응용해서 풀 수 있는 문제 같네요.

앞서 설명했듯이, 바깥쪽 for문 (i)은 줄 번호, 안쪽 for문 (j)는 출력 문자 개수입니다.

공백과 별의 개수를 일반화하면 i 줄에 공백이 i - 1개, 별이 n - i + 1 개 필요합니다.

갯수에 맞게 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 <= i - 1; ++j) {
			printf(" ");
		}
		for (int j = 1; j <= n - i + 1; ++j) {
			printf("*");
		}
		puts("");
	}
	return 0;
}
728x90
반응형
댓글