[백준 2448번] 별 찍기 - 11 (C++)PS/백준 알고리즘[BOJ]2023. 10. 29. 21:46
Table of Contents
728x90
반응형
https://www.acmicpc.net/problem/2448
재귀가 3번 반복되므로 시간복잡도가 O(n의 log2 3승)이다. 잘못하면 시간초과가 날 수 있으므로 연산량을 최대한 줄이는 것이 좋다.
#include<iostream>
using namespace std;
int map[6143][3702];
void fractal(int size, int x, int y) {
if (size == 1) return;
if (size == 3) {
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 5; j++) {
if (i == 2 && j == 2) map[x+j][y+i] = 1;
if (i == 1 && j % 2) map[x+j][y+i] = 1;
if (i == 0) map[x+j][y+i] = 1;
}
}
}
int newSiz = size >> 1;
fractal(newSiz, x, y);
fractal(newSiz, x + size, y);
fractal(newSiz, x + newSiz, y + newSiz);
}
int main(void) {
int N;
cin >> N;
fractal(N, 0, 0);
for (int i = N-1; i >=0; i--, cout << "\n") {
for (int j = 0; j < 2 * N - 1; j++) {
if (map[j][i]) cout << "*";
else cout << " ";
}
}
return 0;
}
728x90
반응형
'PS > 백준 알고리즘[BOJ]' 카테고리의 다른 글
[백준 1182번] 부분수열의 합 (C++) (0) | 2023.10.30 |
---|---|
[백준 15649] N과 M(1) (C++) (1) | 2023.10.30 |
[백준 2447번] 별 찍기 -10 (C++) (1) | 2023.10.29 |
[백준 6549번] 히스토그램에서 가장 큰 직사각형 (1) | 2023.10.28 |
[백준 14601] 샤워실 바닥 깔기 (Large) (0) | 2023.10.27 |
@BE_개발자 :: 경이로운 개발일기
경이로운 BE 개발자가 되기 위한 프로그래밍 공부 기록장
도움이 되었다면 "❤️" 또는 "👍🏻" 해주세요! 문의는 아래 이메일로 보내주세요.