문제
https://www.acmicpc.net/problem/2448
풀이
[재귀]
좌표 찍어보다 보면 규칙이 보인다.
동그라미 친 부분을 재귀로 돌면서
별을 찍으면 된다.
히히 삼각형 이쁘다~
코드
#include <iostream>
using namespace std;
int arr[8000][8000] = { 0 };
void star(int n, int x, int y) {
if (n == 3) {
//삼각형 그리기
arr[y][x] = 1;
arr[y + 1][x - 1] = 1;
arr[y + 1][x + 1] = 1;
arr[y + 2][x - 2] = 1;
arr[y + 2][x + 2] = 1;
arr[y + 2][x - 1] = 1;
arr[y + 2][x + 1] = 1;
arr[y + 2][x] = 1;
return;
}
star(n / 2, x, y);
star(n / 2, x - n / 2, y + n / 2);
star(n / 2, x + n / 2, y + n / 2);
}
int main() {
//INPUT
int N; cin >> N;
//CHECK
star(N, N - 1, 0);
//RESULT
for (int i = 0; i < N; i++) {
for (int k = 0; k < N * 2-1; k++) {
char result = (arr[i][k] == 1) ? '*' : ' ';
cout << result;
}
cout << "\n";
}
}
'개발 > 백준' 카테고리의 다른 글
[백준] 30804. 과일 탕후루 (C++) (0) | 2025.07.06 |
---|---|
[백준] 2630. 색종이 만들기 (C++) (0) | 2025.06.30 |
[백준] 1916번. 최소비용 구하기 (C++) (0) | 2025.02.26 |
[백준] 11725번. 트리의 부모 찾기 (C++) (0) | 2025.02.25 |
[백준] 1991번. 트리 순회 (C++) (0) | 2025.02.24 |