공부/백준(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