본문 바로가기

개인공부

[BaeKJoon/Code up/C++] 별 찍기 응용

반응형

백준, 코드 업 별 찍기를 풀면서 혼자 문제를 만들고 풀어보기로 생각했다. 

생각해 낸 게 왕관(Crown)이다.

 

퀄리티가 많이 떨어지는 왕관이지만 그래도 난 만족이다. ㅎㅎ

 

코드

#include <iostream>
 
using namespace std;
 
int main() {
 
    int test;
    cin>>test;
 
    int cnt=1;
 
    for(int i=0; i<test; i++){
        // 1
        for(int j=0; j<1; j++){
            cout<<"*";              
        }      
        // 2                 
        for(int j=0; j<i; j++){
            cout<<" ";              
        }
        // 3
        for(int j=0; j<1; j++){
            cout<<"*";
        }
        // 4
        for(int j=i; j<test*2-1-cnt; j++){
            cout<<" ";
        }
        // 5
        for(int j=0; j<1; j++){
            cout<<"*";
        }
        // 6
        for(int j=0; j<i-1+cnt; j++){
            cout<<" ";
        }
        // 7
        for(int j=0; j<1; j++){
            cout<<"*";
        }
        // 8
        for(int j=i; j<test*2-1-cnt; j++){
            cout<<" ";
        }
        // 9
        for(int j=0; j<1; j++){
            cout<<"*";
        }
        // 10
        for(int j=0; j<i; j++){
            cout<<" ";
        }
        // 11
        for(int j=0; j<1; j++){
            cout<<"*";
        }
        cnt++;
        cout<<"\n";
    }
 
    // 왕관 밑에 있는 사각형 만들기
    for(int i=0; i<3; i++){
        for(int j=0; j<test*4+2; j++){
            if(i==0||i==2||j==0||j==test*4+1){
                cout<<"*";
            }   
            else{
                cout<<" ";
            }
        }
        cout<<"\n";
    }
    return 0;
}
 
cs
 

풀이

2, 4, 6, 8, 10은 공백에 대한 for문이고,

1, 3, 5, 7, 9, 11은 별(선)에 대한 for문이다.

 

결론

코딩한지가 어느덧 6개월 다 돼가는데 처음에는 별 찍기 문제를 피했다. for문에 대한 자신감이 없었기 때문이다.

하지만 꼭 해야되는 것을 미루면 안 된다고 생각했기에 실패하고 실패를 해보니까 길이 보이기 시작했다.

별 찍기를 할 때는 선의 관점에서 보다는 공백을 관점으로 보면 훨씬 쉽게 별 찍기를 할 수 있다고 생각한다.

 

반응형

'개인공부' 카테고리의 다른 글

BYTE[], BYTE* <----> std::sring (c++)  (0) 2022.12.12
문자열 뒤집기 c++  (0) 2022.01.14
백준 2798(참고) 개인공부 ----c++  (0) 2021.07.31
학생명단  (0) 2021.07.13
c++ 대소문자 변환  (0) 2021.06.30