https://www.acmicpc.net/problem/11729
일반 항을 먼저 만들었다가..
탑의 start, end가 어떻게 되는지가 더 중요한 문제였던 것 같다.
기존의 반복문(o(n))을 pow로 바꿔서 제출했다가, 캐스팅을 하지 않아서 틀렸다. double인 것을 유념하기
1. 일반항
2. 재귀함수 안의 로직
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <vector>
#include <string>
#include <map>
#include <limits.h>
#include <queue>
#include <set>
#include <math.h>
#include <stack>
#include <deque>
#define ll long long
using namespace std;
void cal(int n, int start, int mid, int end) {
if (n == 1) {
cout << start << ' ' << end << '\n';
return;
}
cal(n - 1, start, end, mid);
// start의 제일 아래 값을 end로 옮겨주는 과정
cout << start << ' ' << end << '\n';
cal(n - 1, mid, start, end);
}
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int n, count = 0;
cin >> n;
for (int i = 1; i <= n; i++) {
count = 2 * count + 1;
}
cout << count << '\n';
cal(n, 1, 2, 3);
return 0;
}
'PS > BOJ' 카테고리의 다른 글
[백준] 13549. 숨바꼭질3(c++) (0) | 2025.03.11 |
---|---|
[백준] 1074. Z(c++) (0) | 2025.03.02 |
[백준] 1629. 곱셈(c++) (0) | 2025.03.02 |
[백준] 6593. 상범 빌딩(c++) (0) | 2025.03.02 |
[백준] 2468. 안전영역(c++) (0) | 2025.03.02 |