2445: 별 찍기 - 8
2022. 8. 17. 19:36ㆍC언어/백준
브론즈 3
https://www.acmicpc.net/problem/2445
2445번: 별 찍기 - 8
첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다.
www.acmicpc.net
-결과
-코드
#include <stdio.h>
int main() {
int n;
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
for (int j = i; j > 0; j--) printf("*");
for (int k = 2 * n - 2 * i; k > 0;k--) printf(" ");
for (int l = i; l > 0; l--)printf("*");
printf("\n");
}
for (int i = n-1; i > 0; i--) {
for (int j = i; j > 0; j--)printf("*");
for (int k = 2 * n - 2 * i; k > 0; k--)printf(" ");
for (int l = i; l > 0; l--)printf("*");
printf("\n");
}
return 0;
}
-풀이
*을 출력하고 빈칸을 출력하고 다시 *을 출력하도록 작성해야 한다.
예제를 보면 첫째 줄에는 * 1개, 빈칸 8개, * 1개 출력한다.
둘째 줄에는 * 2개, 빈칸 6개, * 2개 출력한다.
셋째 줄에는 * 3개, 빈칸 4개, * 3개 출력한다.
넷째 줄에는 * 4개, 빈칸 2개, * 4개 출력한다.
다섯번째 줄에는 * 5개, 빈칸 0개, * 5개 출력한다.
*은 i번째 줄이라고 가정했을 때, i개를 출력하도록 for문을 작성하고,
빈칸은 2*n - 2*i만큼 출력하도록 for문을 작성한다. (n은 입력받은 수, i는 i번째 줄을 의미함)
그리고 1~5번째 줄까지 작성하고 나서 1~4번째 줄을 역순으로 다시 출력하게끔 만들기 위해서 안쪽 for문을 똑같이 작성하는 대신 바깥쪽 for문의 범위를 다르게 작성한다. 아래부분은 4~1번째 줄을 출력해야 하기 때문에 i=n-1이라고 선언하고, i>0일때까지만 출력하도록 작성한다.
'C언어 > 백준' 카테고리의 다른 글
2506: 점수계산 (0) | 2022.08.25 |
---|---|
2455: 지능형 기차 (0) | 2022.08.25 |
2443: 별 찍기 - 6 (0) | 2022.08.17 |
2444: 별 찍기 - 7 (0) | 2022.08.13 |
1574: 공 (0) | 2022.08.02 |