티스토리 뷰

https://programmers.co.kr/learn/courses/30/lessons/12946#

 

코딩테스트 연습 - 하노이의 탑

하노이 탑(Tower of Hanoi)은 퍼즐의 일종입니다. 세 개의 기둥과 이 기동에 꽂을 수 있는 크기가 다양한 원판들이 있고, 퍼즐을 시작하기 전에는 한 기둥에 원판들이 작은 것이 위에 있도록 순서대

programmers.co.kr

 

[프로그래머스][C++] 하노이의 탑

 

금융권에서는 정말 자주 나오는 하노이의 탑..

몇년 전 삼성 면접에서도 나온 적이 있다.

 

#include <string>
#include <vector>

using namespace std;

vector<vector<int>> answer;

void move(int from, int by, int to) {
	answer.push_back({ from, to });
}

void hanoi(int n, int from, int by, int to) {
	if (n == 1) {
		move(from, by, to);
		return;
	}
	hanoi(n - 1, from, to, by);
	move(from, by, to);
	hanoi(n - 1, by, from, to);
}

vector<vector<int>> solution(int n) {
	hanoi(n, 1, 2, 3);
	return answer;
}

 

댓글