티스토리 뷰
https://www.acmicpc.net/problem/2446
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 |
댓글