[C++] 백준 14891(DFS)


[C++] 백준 14891(DFS)

문제 문제가 너무 길어서 생략하겠습니다. 링크 참조... 접근법 이 문제를 풀면서 크게 두 가지 부분으로 나누어서 생각했다. 톱니를 선택 주변 탐색 자신의 양 옆 톱니의 극을 확인해서,(저는 우측,좌측 톱니 순으로 확인했지만 순서는 중요하지 않습니다.) 가장 우측에 있는 톱니부터 돌기 시작해서, 최초 선택한 톱니 우측에 있는 톱니에 도달한다면, 가장 좌측의 톱니로 이동하고 최초 선택한 톱니의 좌측에 있는 톱니까지 회전한다면, 최초 선택한 톱니가 회전합니다.(선택한 톱니는 가장 나중에 회전) 돌 수 있다면 돌리고, 아니면 stay 나머지 해설은 주석을 참조해주세요! 소스 코드 #include <iostream> #include <vector> #include <string> #define abs(a) ((a)>(0)?(a):(-a)) using namespace std; vector<int> q1,q2,q3,q4; vector<pair<int,int> > m; int K, num, d...



원문링크 : [C++] 백준 14891(DFS)