공부/백준(C++) - 2022~

백준 1002번: 터렛 [C++]

상연 2022. 1. 23. 15:35

목차

https://www.acmicpc.net/problem/11729

 

11729번: 하노이 탑 이동 순서

세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로

www.acmicpc.net

코드

#include <iostream>
#include <cmath>
using namespace std;

void hanoi(int n, int start, int mid, int end)
{
	if(n == 1)
	{
		printf("%d %d\n", start, end);
	}
	else
	{
		hanoi(n - 1, start, end, mid);
		printf("%d %d\n", start, end);
		hanoi(n - 1, mid, start, end);
	}
}

int main() {
	int n;
	cin >> n;
	cout << (1<<n) - 1 << endl;
	hanoi(n, 1, 2, 3);
	return 0;
}

 

설명

진짜, 작년에 풀 때도 pow 함수 써서 계속 틀렸는데, 이번에도 또 똑같이 계속 틀려서 비트연산했다.

학습능력이 정말 제로라서 내가 내 글 다시 읽고 공부했다...

그래서 작년 글을 다시 링크 건다.

https://wonsang98.tistory.com/29

 

11729번: 하노이 탑 이동 순서(백준 C++)

11729번: 하노이 탑 이동 순서 링크 코드 #include #include using namespace std; void hanoi(int n, int start, int mid, int end){ if(n == 1) cout << start << " " << end << "\n"; else{ hanoi(n - 1, star..

wonsang98.tistory.com