Deep Learning through deep learning

백준 10992 별 찍기-17 본문

Baekjoon_algorithm_heuristic

백준 10992 별 찍기-17

NeuroN 2023. 2. 2. 11:16

https://www.acmicpc.net/

 

Baekjoon Online Judge

Baekjoon Online Judge 프로그래밍 문제를 풀고 온라인으로 채점받을 수 있는 곳입니다.

www.acmicpc.net

문제 해석

더보기

예제를 보면, 한 변이 N이 주어질 때, 속이 빈 이등변 삼각형을 출력하는 문제이다.

코드 해석

더보기

N은 삼각형 변 길이 수. 삼각형은 *기호로 이루어져 있고, 다른곳은 공백 " ".

for반복문, if조건문을 동시에 활용.

N개만큼 층을 쌓아야하므로, for문으로 i0-N까지 반복.

0층의 경우, 제일 중앙 모서리 부분에 *출력, 특성을 알아내면 N번째가 모서리 지점임을 통해 N-1번의 " "공백 출력, N번째 *출력.

N층 마지막층의 경우, 삼각형의 밑면을 *로 채워야 하므로, 특성을 알아내면 2*N-1개의 *을 출력, 즉, 이중for문 활용. 1~N-1층 나머지 층의 경우, 3번의 공백 사이에 2개의 *를 출력해야함. 규칙을 찾으면, 0~N-1-i번째까지는 " "공백출력, *출력, N-i부터 N+i-1까지 " "공백출력, *출력.

i층이 증가할때마다 endl혹은 c언어에서는 \n을 이용해 줄바꿈을 해줌.

이러면 이등변삼각형이 나온다.

코드

#include <iostream>
#include <math.h>
#include <algorithm>
#include <vector>
using namespace std;

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);

    int N; cin >> N;

    for (int i = 0; i < N; i++)
    {
        if (i == 0)
        {
            for (int j = 0; j < N - 1; j++)
            {
                cout << " ";
            }
            cout << "*";
        }
        else if (i == N-1)
        {
            for (int j = 0; j < 2 * N - 1; j++)
            {
                cout << "*";
            }
        }
        else
        {
            for (int j = 0; j < N - 1 - i; j++)
            {
                cout << " ";
            }
            cout << "*";
            for (int j = 0; j < 2*i-1; j++)
            {
                cout << " ";
            }
            cout << "*";
        }
        cout << endl;
    }

}

'Baekjoon_algorithm_heuristic' 카테고리의 다른 글

백준 23806번 골뱅이 찍기 - ㅁ  (0) 2023.02.02
백준 5565 영수증  (2) 2023.02.02
백준 25630번 팰린드롬 소떡소떡  (0) 2023.02.02
백준 2480번 주사위 세개  (2) 2023.02.02
백준 25625번 샤틀버스  (0) 2023.02.02