알고리즘 모음(C++)

백준 2445 - 별 찍기 - 8(C++) 본문

백준

백준 2445 - 별 찍기 - 8(C++)

공대생의 잡다한 사전 2023. 4. 10. 17:17

문제 링크입니다. https://www.acmicpc.net/problem/2445

 

2445번: 별 찍기 - 8

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

www.acmicpc.net

반복문을 사용한 별 찍기 문제입니다.

먼저 한줄에는 별과 띄어쓰기를 합해서 N*2개가 존재하는 것을 확인할 수 있습니다.

그리고 1~N / (N+1) ~ (N*2 - 1)로 줄을 나눠서 생각해보면 쉽습니다.

 

1번 줄에는 별이 1개씩 2번 나오고, 띄어쓰기는 N*2 -2개가 나옵니다.

2번 줄에는 별이 2개씩 2번 나오고, 띄어쓰기는 N*2 -4개가 나옵니다.

3번 줄에는 별이 3개씩 2번 나오고, 띄어쓰기는 N*2 -6개가 나옵니다.

4번 줄에는 별이 4개씩 2번 나오고, 띄어쓰기는 N*2 -8개가 나옵니다.

 

이정도만 확인해보면 규칙을 찾으실 수 있을거 같습니다.

 

자세한 것은 코드를 참고해주세요

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <queue>
#include <vector>
#include <cstring>
#include <cmath>
#define P pair<int, int>
#define F first
#define S second
#define INF 987654321
using namespace std;

int N;

int main(){
    cin.tie(0);
    cout.tie(0);
    cin >> N;
    for(int i = 1; i <= N; i++){
        for(int j = 1; j <= i; j++) cout << "*";
        for(int j = i*2; j < N*2; j++) cout << " "; 
        for(int j = 1; j <= i; j++) cout << "*";
        cout << "\n";
    }
    for(int i = N-1; i >= 1; i--){
        for(int j = 1; j <= i; j++) cout << "*";
        for(int j = i*2; j < N*2; j++) cout << " "; 
        for(int j = 1; j <= i; j++) cout << "*";
        cout << "\n";
    }
    return 0;
}

 

 

질문 및 조언은 댓글을 남겨주세요

'백준' 카테고리의 다른 글

백준 5622 - 다이얼(C++)  (0) 2023.04.10
백준 1924 - 2007년(C++)  (0) 2023.04.10
백준 2523 - 별 찍기 - 13(C++)  (0) 2023.04.10
백준 2446 - 별 찍기 - 9(C++)  (0) 2023.04.10
백준 2443 - 별 찍기 - 6(C++)  (0) 2023.04.06