c c++ 언어 공부
백준 2523번 : 별 찍기 - 13 (C 언어)
Code C
2023. 10. 30. 12:00
https://www.acmicpc.net/problem/2523
2523번: 별 찍기 - 13
첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다.
www.acmicpc.net
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
#include <stdio.h>
int main() {
int n;
scanf("%d", &n);
int cnt = 2 * n - 1;
int a = 1;
int flag = 0;
while (cnt--)
{
for (int i = 1; i <= a; i++)
{
printf("*");
}
if (a == n)
{
flag = 1;
}
if (flag == 0)
{
a++;
}
else
{
a--;
}
if (cnt != 0)
{
printf("\n");
}
}
}
|
cs |
문제 설명:
오늘 우리는 N(1 ≤ N ≤ 100)에 대한 규칙적인 별 패턴을 출력하는 문제를 해결할 것입니다. 주어진 N에 따라 1부터 N까지의 줄에서는 별이 점점 늘어나다가, N부터 1까지의 줄에서는 별이 점점 줄어드는 패턴을 출력해야 합니다.
입력: 첫째 줄에 N이 주어집니다.
출력: 첫째 줄부터 2×N-1번째 줄까지 별을 출력해야 합니다.
코드 설명:
- 우선, 사용자로부터 N 값을 입력받습니다.
- cnt 변수는 총 줄 수를 나타냅니다. 이 줄 수는 2 * N - 1입니다.
- a 변수는 현재 줄에서 출력할 별의 개수를 나타냅니다.
- flag 변수는 N 줄까지 증가 후 감소하는 지점을 표시합니다.
- while 루프를 사용하여 패턴을 출력합니다. 루프는 cnt 변수를 감소시키며, cnt가 0이 될 때까지 실행됩니다.
- 각 줄에서는 a 개수만큼 별을 출력하고, a 값이 N과 같아지면 flag를 1로 설정합니다.
- flag 값에 따라 a 값을 증가 또는 감소시킵니다.
- 각 줄을 출력한 후, 마지막 줄을 제외한 모든 줄 끝에 개행 문자("\n")를 출력하여 줄을 바꿉니다.