이것은 많은 사람들이 수동으로 해결 한 일반적인 퍼즐입니다. 이제는이를 해결하기 위해 알고리즘을 작성해야합니다.
서로 다른 방향을 향한 두 개의 다른면에 등번호가 일치하는 스틱이 있습니다. 그들 사이에 하나의 빈 공간이 있습니다. 다음 그림과 같이 말합니다 (총 성냥개비가 4 개인 경우).

각 스틱은 앞쪽으로 한 걸음 앞으로 이동하거나 (즉시 앞 공간이 비어있는 경우) 앞쪽에있는 하나의 스틱 위로 튀어 나와서 빈 공간으로 이동할 수 있습니다 (해당 공간이없는 경우). 빈 공간이 있어도 반대 방향으로 이동할 수 없습니다. 리버스 점프도 허용되지 않습니다. 한 번에 한 번만 이동할 수 있습니다.
이제 모든 왼쪽 성냥개비가 오른쪽에 착륙하고 모든 오른쪽 성냥개비가 왼쪽에 착륙하는 데 필요한 최소 단계를 찾기위한 알고리즘을 작성해야합니다.
예를 들어 : 총 2 개의 성냥개비 (각 측면에 1 개)가있는 경우 단계는 다음과 같습니다.

참고 : 위 그림에서 왼쪽 스틱이 먼저 움직였습니다. 오른쪽 스틱이 먼저 움직일 때 다른 해결책이 있습니다. 그러나이 문제의 경우 하나의 솔루션 만 제공해야하며 왼쪽 스틱이 먼저 움직이는 것으로 가정합니다.
다음 그림은 4 개의 성냥 스틱 (양쪽에 2 개)이있는 움직임을 설명합니다.

참고 : 위 그림에서 왼쪽 스틱이 먼저 움직였습니다. 오른쪽 스틱이 먼저 움직일 때 다른 해결책이 있습니다. 그러나이 문제의 경우 하나의 솔루션 만 제공해야하며 왼쪽 스틱이 먼저 움직이는 것으로 가정합니다.
[가정 : 입력은 02 ~ 14 사이의 임의의 짝수 일 수 있습니다 (예 : 각 측면에 1 ~ 7 개의 일치 스틱). 이 범위를 벗어난 입력의 경우 유효성 검사를 수행하거나 오류 메시지를 제공하지 않아도됩니다. 참고 : 출력에서 각 단계는 '|' (파이프) 캐릭터. COBOL 프로그래머는 항상 PIC 9 (2)를 입력 크기로 가정하고 출력을 고정 된 최대 길이 450 자로 가정하고 오른쪽에 공백으로 채 웁니다.]
샘플 입력 :
02
샘플 출력 :
01To02|03To01|02To03|
샘플 입력 :
04
샘플 출력 :
02To03|04To02|05To04|03To05|01To03|02To01|04To02|03To04|
샘플 입력 :
06
샘플 출력 :
03To04|05To03|06To05|04To06|02To04|01To02|03To01|05To03|07To05|06To07|04To06|02To04|03To02|05To03|04To05|



