백준 문제 풀이 - 별 찍기 - 8 2445번

Joonyeol Sim👨‍🎓·2022년 2월 22일
0

백준문제풀이

목록 보기
94/128

📜 문제 이해하기

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

💡 문제 재정의

별의 규칙대로 숫자에 맞게 찍어보자.

✏️ 계획 수립

먼저 별의 패턴을 파악해보자.
별은
*
**
***
****
*****
위 패턴과
****
***
**
*
이 패턴의 합의 대칭으로 볼 수 있다.
따라서 각각의 패턴들을 출력하는 코드를 합친 뒤 대칭이 되도록 별 출력 부분을 더해주면 된다.

💻 계획 수행

#include <bits/stdc++.h>

using namespace std;

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);

    int num;
    cin >> num;
    for (int i=0; i<num; i++){
        // 별 출력
        for (int j=0; j<=i; j++)
            cout << '*';
        // 띄어쓰기 출력
        for (int j=(num-1)*2; j>i*2; j--)
            cout << ' ';
        // 별 출력
        for (int j=0; j<=i; j++)
            cout << '*';
        cout << '\n';
    }
    for (int i=0; i<num-1; i++){
        for (int j=num-1; j>i; j--)
            cout << '*';
        for (int j=0; j<=i*2+1; j++)
            cout << ' ';
        // 별 출력
        for (int j=num-1; j>i; j--)
            cout << '*';
        cout << '\n';
    }
}

🤔 회고

별의 출력을 쪼갠뒤 합치는 분할 정복같은 느낌의 문제였다.

profile
https://github.com/joonyeolsim

0개의 댓글