티스토리 뷰

Study/백준

2446번 별 찍기 -9 in c

15051015 2020. 6. 17. 16:45

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

 

2446번: 별 찍기 - 9

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

www.acmicpc.net

 

 

 

in c code

 

#include <stdio.h>

void printstar(int b);
int a;
int main() {

	int i, j, b;

	scanf("%d", &a);

	for (i = a; i > 1; i--)
	{
		printstar(i);
		printf("\n");
	}
	for (i = 1; i <= a; i++)
	{
		printstar(i);
		printf("\n");
	}

}

void printstar(int b)
{
	int f;
	int k;
	f = (2 * b) - 1;

	for (k = a; k > b; k--)
		printf(" ");
	


	for (k = 0; k < f; k++)
		printf("*");
}

 

풀이는 간단하다.

 

처음에는 별을 찍어주는 함수를 만들었다. 

 

별이 찍히는 규칙 (홀수배 , 즉 n*2-1) 을 찾아낸 후 그에 맞는 함수를 만든다.

 

그 후 가운데정렬을 하는 고민을 해보았는데,

 

띄어쓰기가 몇개가 쓰여있는지 규칙을 찾아보았다.

 

첫번째줄은 0 두번째줄은 1 세번째 2 네번째 3 다섯번째 4 여섯번째 3 일곱번째 2 여덜번째 1 아홉번째 0

 

즉 1씩올라갔다가 1씩 내려가는것을 발견하고

 

그에 맞는 순서에 그만큼 해주면 되겠구나를 발견하였다.

 

 

그렇게하면 완성이다.

 

 

'Study > 백준' 카테고리의 다른 글

2884번 알람 시계 in c  (0) 2020.06.22
10996번 별 찍기 - 21 in c  (0) 2020.06.17
2523번: 별 찍기 -13 in c  (0) 2020.05.18
5543번 상근날드 in c  (0) 2020.03.11
zz  (0) 2019.10.25
댓글
최근에 올라온 글
최근에 달린 댓글
250x250