백준

백준 2447번: 별 찍기 - 10, c++

2024. 1. 31. 18:33

 

 

 

작성한 코드는 다음과 같다. 

NxN 행렬을 중첩 for문을 통해 돌며 "  " 또는 "*"를 출력하도록 했다.

나눈 나머지가 1인 부분은 "  "를 출력하고 그 외의 부분은 "*"를 출력한다.

그 외의 경우는 재귀함수를 사용해 N/3을 계산하여 행렬을 작은 3x3행렬로 나누어져 고려되도록 했다,

#include <iostream>
using namespace std;

void star(int i, int j, int N) {
    if((i/N)%3==1 && (j/N)%3==1)
        cout << " ";
    else if(N/3==0)
        cout << "*";
    else
        star(i, j, N/3);
}

int main() {
    int N;
    cin >> N;
  
    for(int i=0; i<N; i++) {
        for(int j=0; j<N; j++)
            star(i, j, N);
        cout << "\n";
    }
    
    return 0;
}

 

 

 

 

 

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

백준 17425 약수의 합, c++  (0) 2024.02.15
백준 1038번: 감소하는 수, c++  (0) 2024.02.02
백준 2493번: 탑, c++  (0) 2024.01.30
백준 1922번: 네트워크 연결, c++  (0) 2024.01.30
백준 14503번: 로봇 청소기, c++  (0) 2024.01.29