문제
예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.
입력
첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.
출력
첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다.
https://www.acmicpc.net/problem/2446 -> 여기서 예제를 확인하세요.
★소스코드★
#include <stdio.h>
int main() {
int N;
scanf("%d", &N);
for (int i = 0; i < N; i++) {
for (int j = 0; j < N + N - 1; j++) {
if (i - j > 0)
printf(" ");
else if (i + j < N + N - 1)
printf("*");
else
break;
}
if (N != 1)
printf("\n");
}
for (int i = N - 1; i > 0; i--) {
for (int j = 0; j < N + N - 1; j++) {
if (i - j > 1)
printf(" ");
else if (i + j <= N + N - 1)
printf("*");
else
break;
}
if (i != 1)
printf("\n");
}
}
★정리★
이 문제의 관건은 공백을 넣는 것이라고 생각한다. 주의할 점은 앞 부분에는 공백이 있지만 뒷부분에는 공백이
없다는 것이다. 반복문을 이용해 별을 찍어 주었는데 규칙에 맞게 공백을 넣기 위해 조건문을 이용하였다. 입력받은
N 만큼 반복해 주는 반복문 안에 별의 개수가 줄어드는 부분의 반복문 그리고 다시 별의 개수가 늘어나는 반복문을
사용하여 예제에 맞게 별을 출력하는 프로그램이다.
'알고리즘' 카테고리의 다른 글
C언어 - 백준 2292 벌집 (0) | 2020.03.25 |
---|---|
C언어 - 백준 10996 별 찍기 - 21 (1) | 2020.03.21 |
C언어 - 백준 2523 별 찍기 - 13 (0) | 2020.03.20 |
C언어 - 백준 10039 평균 점수 (0) | 2020.03.20 |
C언어 - 백준 2884 알람 시계 (0) | 2020.03.19 |