원문링크

블록 문제 

배경 

과감히 생략.

문제 

로봇의 팔이 평평한 테이블에 있는 블럭을 명령어대로 움직이게 하는 문제.

처음엔 아래처럼 n개의 블록(0부터 n-1까지)들이 있고 $0 \leq i < n-1$의 범위 내에 모든 i에 대해 bi 와  bi+1은 인접해있다.

그림 :
 아름다운 초기의 블럭나라

로봇의 팔에 하사하는 명령어 :

*a와 b는 블럭번호.

  • move a onto b

    a와 b에 있는 블록들을 제자리에 돌려놓고 a블럭을 b블럭 위로 옮긴다.

  • move a over b

    a위에 있는 블록들을 제자리에 돌려놓고 b블럭이 있는 블럭 기둥의 꼭대기로 a를 옮긴다.

  • pile a onto b

    b위에 있는 블록들을 제자리에 돌려놓고 a블록 위에 있는 블록기둥( a를 포함하여)을 b위로 옮긴다. 옮길 때 블록의 순서는 유지한다.

  • pile a over b

    a블록 위에 있는 블록기둥( a를 포함하여)을 b가 있는 블록기둥위로 옮긴다. 옮길 때 블록의 순서는 유지한다.

  • quit

    종료.

a = b일 때나 a와 b가 같은 블록기둥에 있을 때는 잘못된 명령이므로 무시한다.

입력 

첫 줄은 블록나라의 블록 개수를 나타내는 n(0 < n < 25)이 입력된다.

두 번째 줄부터 한 줄에 하나의 명령어가 입력되며 quit명령어가 입력될 때 까지 실행한다.

잘못된 문법의 명령어는 없다.

출력 

블록나라의 최종모습을 출력한다. 

각 줄의 처음에는 블록기둥 위치의 번호 i ( $0 \leq i < n$, n은 블록의 개수)를 출력하고 바로 다음에 콜론(:)을 출력한다 . 

공백문자 하나를 출력한다.

블록이 있다면 공백문자로 구분하여 출력하고 없다면 출력하지 않는다.

줄 끝에는 공백이 있으면 안된다.

입력 예시 

10
move 9 onto 1
move 8 over 1
move 7 over 1
move 6 over 1
pile 8 over 6
pile 8 over 5
move 2 over 1
move 4 over 9
quit

출력 예시 

 0: 0
 1: 1 9 2 4
 2:
 3: 3
 4:
 5: 5 8 7 6
 6:
 7:
 8:
 9:


AC
저작자 표시 비영리 변경 금지

이 글이 유익하다면 (굽신굽신) ->

Trackback Address >> http://zfanta.com/trackback/442 관련글 쓰기

  1. Favicon of http://dlbo.tistory.com BlogIcon Lonewolf dlbo 2009/03/25 00:49  address  modify / delete  reply

    헛. 이건 저 귀찮아서 안풀고 있던 문제군요 ㅋㅋㅋㅋㅋ

  2. Favicon of http://gam860720.tistory.com/ BlogIcon 김성중 2011/11/11 14:07  address  modify / delete  reply

    이거 문제 이해가 잘 안되는데 좀더 추가 설명좀 들을 수 있을까요?

    시간 나시면 연락주시면 감사하겠습니다.

  3. Favicon of http://tokyoexpress-az.com BlogIcon 유병수 2012/01/11 00:59  address  modify / delete  reply

    개구리 올챙이 적 생각도 못 한다

  4. Favicon of http://greenstarenergysaver.com BlogIcon 고명진 2012/01/12 10:19  address  modify / delete  reply

    큰 최고야, 당신은 날 계몽있다