728x90
728x90

문제

예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.

 

입력

첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.

 

출력

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

 

예제 입력 1

5

 

예제 출력 1

*
***
*****
*******
*********
*******
*****
***
*

 

알고리즘 분류

  • 구현

 

문제 출처

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

 

2444번: 별 찍기 - 7

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

www.acmicpc.net

 


 

문제 해결 방법

  • [단계별로 풀어보기] 문제집에 새로 추가된 문제이다.
  • 각 줄(row)마다 공백의 개수별(*)의 개수가 어떻게 변하는지 분석하여 풀어야 하는 문제이다.

 

코드

#include <iostream>
using namespace std;
int N;
void Input() {
cin >> N;
}
void Solution(int n) {
int a, b, c, d;
for (int row = 1; row < n * 2; row++) {
// up
if (row <= n) {
for (a = 1; a <= n - row; a++) cout << ' ';
for (b = 1; b <= (2 * n) - (2 * a) + 1; b++) cout << '*';
cout << '\n';
}
// down
else {
for (c = 1; c <= row - n; c++) cout << ' ';
for (d = 1; d <= (2 * n) - (2 * c) + 1; d++) cout << '*';
cout << '\n';
}
}
}
void Output() {
Solution(N);
}
void Solve() {
Input();
Output();
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
Solve();
return 0;
}

 

채점 결과

 

참고

  • [단계별로 풀어보기] > [심화 1]
  • 브론즈III
728x90
728x90

문제입력출력예제 입력 1예제 출력 1알고리즘 분류문제 출처문제 해결 방법코드채점 결과참고