반응형
출처: https://www.acmicpc.net/problem/2445
Approach
Input
5
Output
* *
** **
*** ***
**** ****
**********
**** ****
*** ***
** **
* *
모양을 세로로 출력하면 쉽게 풀 수 있지만
출력은 가로 방향이므로 이에 맞춰서 설계해야 한다.
▶ 높이는 주어진 입력(N)에서 {2 × N - 1} 만큼 가진다.
▶ 시작 위치(start)에서 left++되면서
start ~ left 까지 별(*) 출력
▶ 우측(right) 위치까지는 공백 출력
(left ~ right 사이)
▶ right ~ 끝 위치(end)까지 별(*) 출력
높이 N까지는 right--
▶ 높이가 N만큼 되었을 때, 아래와 같이 처리
left++ → left--
right-- → right--
#include <iostream>
using namespace std;
int main(){
int n;
cin >> n;
int start = 1;
int end = n + n;
int left = start;
int right = end;
int i,j;
for(i = 1; i <= n; i++){
for(j = start; j <= end; j++){
if(j <= left || j >= right){
cout << "*";
}
else{
cout << " ";
}
}
cout << "\n";
left++;
right--;
}
// left,right 서로의 역할을 바꾼다.
left++;
right--;
for(i=n-1;i>=1;i--){
for(j=start; j<=end; j++){
if(j<=right || j>=left){
cout << "*";
}
else{
cout << " ";
}
}
cout << "\n";
left++;
right--;
}
}
반응형
'PS 문제 풀이 > Baekjoon' 카테고리의 다른 글
[BOJ] 백준 2522 별 찍기 - 12 (0) | 2021.04.18 |
---|---|
[BOJ] 백준 2446 별 찍기 - 9 (0) | 2021.04.18 |
[BOJ] 백준 2556 별 찍기 - 14 (0) | 2021.04.18 |
[BOJ] 백준 2439 별 찍기 - 2 (0) | 2021.04.18 |
[BOJ] 백준 2438 별 찍기 - 1 (0) | 2021.04.17 |
댓글