아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

구르는 직육면체

면접 대비

시간 제한8초메모리 제한512 MB

요약
1x2x4 블록을 격자 위에서 굴리는 명령을 처리한 뒤, 이동한 앞왼쪽 모서리 위치와 앞면, 왼쪽면, 윗면의 색을 출력한다.
난이도

보통10점 중 4점

유형
시뮬레이션, 구현, 배열, 수학
정답자
아직 제출이 없습니다

문제

한 변이 1인치인 정사각형 격자가 그려진 넓은 판 위에 나무 직육면체가 서 있다. 이 직육면체는 깊이 1인치, 너비 2인치, 높이 4인치이다. 처음에 직육면체는 정확히 두 칸 위에 놓여 있다. 윗면은 검은색, 아랫면은 흰색, 앞면은 초록색, 뒷면은 빨간색, 왼쪽 면은 파란색, 오른쪽 면은 노란색이다.

그다음 직육면체를 굴려서 판 위의 새로운 위치로 옮긴다. 굴리는 동안 직육면체의 한 모서리는 항상 판의 한 선과 맞닿아 있다. 직육면체는 절대 미끄러지지 않는다.

직육면체에 할 수 있는 기본 동작은 네 가지이다: F(앞으로 굴리기), B(뒤로 굴리기), L(왼쪽으로 굴리기), R(오른쪽으로 굴리기).

그림 1: 구르는 직육면체

그림은 직육면체의 처음 위치(가운데)와, 네 가지 기본 동작을 각각 한 번씩 수행한 뒤의 모습을 보여 준다. 다만 판 위에서의 정확한 위치는 나타내지 않는다.

기본 동작의 나열이 주어졌을 때 직육면체의 최종 상태를 출력하는 프로그램을 작성하라.

입력

입력은 여러 데이터 세트로 이루어진다. 각 데이터 세트는 ‘F’, ‘B’, ‘L’, ‘R’로만 이루어진 길이 1000 이하의 문자열 한 줄이다.

출력

각 데이터 세트마다 주어진 기본 동작의 나열을 차례대로 수행한 뒤, 처음 위치를 기준으로 한 직육면체의 앞쪽 왼쪽 모서리의 새 위치와 직육면체의 앞면, 왼쪽 면, 윗면의 색을 출력한다. 출력 형식은 아래 출력 예를 따른다.

예제1

  1. 예제 1

    입력
    FRBL
    
    예상 출력
    x: -2, y: 0, front: yellow, left: black, top: red