본문 바로가기
Algorithm/C++

[백준 2442] 별 찍기 -5

by imagineer_jinny 2023. 8. 25.

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

 

2442번: 별 찍기 - 5

첫째 줄에는 별 1개, 둘째 줄에는 별 3개, ..., N번째 줄에는 별 2×N-1개를 찍는 문제 별은 가운데를 기준으로 대칭이어야 한다.

www.acmicpc.net

 

문제

첫째 줄에는 별 1개, 둘째 줄에는 별 3개, ..., N번째 줄에는 별 2×N-1개를 찍는 문제

별은 가운데를 기준으로 대칭이어야 한다.

입력

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

출력

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

예제 입력 

5

예제 출력 

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

사고 과정 /맞음

별 찍히는 갯수는 알겠는데 가운데 처리는 어떻게 하지?

n/2 -> n/2-1 -> n/2-2 -> 0

이런식이면 왼쪽은 채운다 쳐도 오른쪽 다시 채울려면 머리 아프니까 

계속 빈칸을 채우다가(while문 같은 거에) 별만 찍을때 예외처리같은걸 해줘야 겠다는 생각이 들었다.

라고 생각하다가 아닌 것 같아

우선 예시에 끼워 맞춰서 식을 만들어 보기로 결심

 

#include <iostream>

using namespace std;
int main() {
    int n;
    cin >> n;

    int num = n * 2 - 1;
    for (int i = 0; i < n; i++)
    {
        for (int k = 0; k < num / 2 - i; k++)
        {
            cout << " ";
        }
        for (int j = num / 2 - i; j <= num / 2 + i; j++)
        {
            cout << "*";
        }
     
        cout << endl;

    }

    return 0;
}

 

 

 

 

 

'Algorithm > C++' 카테고리의 다른 글

[백준 25314] 코딩은 체육과목 입니다  (0) 2023.08.25
[백준 1009] 분산처리  (0) 2023.08.25
[백준 2439] 별 찍기 -2  (0) 2023.08.24
[백준 2438] 별 찍기 -1  (0) 2023.08.24
[백준 1977] 완전제곱수  (0) 2023.08.20

댓글