본문 바로가기
PS 문제 풀이/Baekjoon

[BOJ] 백준 2445 별 찍기 - 8

by 까망 하르방 2021. 4. 18.
반응형

출처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--

 

 [문제] BOJ 별 찍기 시리즈

 

[문제] BOJ 별 찍기 시리즈

[BOJ] 2438 별 찍기 - 1 [BOJ] 2439 별 찍기 - 2 [BOJ] 2440 별 찍기 - 3 [BOJ] 2441 별 찍기 - 4 [BOJ] 2442 별 찍기 - 5 [BOJ] 2443 별 찍기 - 6 [BOJ] 2444 별 찍기 - 7 [BOJ] 2445 별 찍기 - 8 [BOJ] 2446 별..

zoosso.tistory.com


#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

댓글