공부 자료/알고리즘

(C/C++) 백준 2442번 - 별찍기

뚜루뚜루세니 2021. 7. 3. 13:24
728x90

문제 출처:https://www.acmicpc.net/problem/2442

 

2442번: 별 찍기 - 5

첫째 줄에는 별 1개, 둘째 줄에는 별 3개, ..., N번째 줄에는 별 2×N-1개를 찍는 문제 별은 가운데를 기준으로 대칭이어야 한다.

www.acmicpc.net

1. 코드

#include <stdio.h>

int main() {
	int n;
	scanf("%d", &n);

	for (int i = 1; i <=  n; i++) {

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

2. 해결 과정

 

트리 모양으로 *을 찍는 문제이다.

for문을 중첩으로 사용하여, 수를 입력받고, 처음 for문은 행의 개수를 출력하는 것이다.

for문 안의 첫번째 for문은 빈칸을 생성하는 것이다. 두번째 for문은 별을 출력하는 것이다.

예를 들어, n=3이면 첫번째 for문에서 2번째 까지 공백을 출력하고, 두 번째 for문으로 내려가서 별하나를 찍고, 다시 큰 for문이 한번 반복된다.

 

3. 느낀 점

공백을 생성하고, 별을 찍고, 대칭을 만드는 것이 생각보다 까다로웠고, for문의 조건을 설정하는 게 생각보다 어려웠다.

728x90