1. paizaラーニングトップ
  2. レベルアップ問題集
  3. Aランク・スキルチェック過去問題セット(言語選択)
  4. 問題一覧 Python2編
  5. 「ひとりすごろく」を解くために : part2 Python2編

Aランク・スキルチェック過去問題セットのサムネイル
「ひとりすごろく」を解くために : part2 Python2編(paizaランク B 相当)

問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!

問題

下記の問題をプログラミングしてみよう!

1 つの特殊なサイコロが与えられます。
サイコロは 1 から 6 までの数字が書かれた 6 面サイコロですが、面に書かれた数字の配置が通常と異なりゲームを始める際に数字の配置が決まります。
初期状態では、サイコロにの各面に ID としてアルファベット T, B, U, D, L, R が以下の図で表すように与えられています。



サイコロの各面 T, B, U, D, L, R に対応する数字がそれぞれ与えられます。
画像のように、T の面を上にし U の面を手前に向けてサイコロを置きます。
このとき、数字 1, 2, 3, 4, 5, 6 が書かれた面を上にするにはそれぞれ何回サイコロを回転させる必要がありますか?
それぞれの回転回数の最小値を求めてください。

ここで「回転」の操作は「奥」「手前」「右」「左」のいずれかの方向にサイコロを 90°回転させることを指します。必要であれば 2 回以上の回転も行うことができます。

入力される値

入力は以下のフォーマットで与えられます。

T B U D L R

・ 1 行目には問題文にそってサイコロの各面の ID である T, B, U, D, L, R に対応する数字がこの順に半角スペース区切りで与えられます。
・ 入力は合計で 1 行となり、末尾に改行が1つ入ります。


入力値最終行の末尾に改行が1つ入ります。
文字列は標準入力から渡されます。 標準入力からの値取得方法はこちらをご確認ください
期待する出力

期待する出力は 6 行からなります。
i (1 ≦ i ≦ 6) 行目には、i が書かれた面を上にするために必要な回転回数の最小値を出力してください。

最後は改行し、余計な文字、空行を含んではいけません。

条件

すべてのテストケースにおいて、以下の条件をみたします。

・ 入力される値はすべて整数
・ 1 ≦ T, B, U, D, L, R ≦ 6
・ T, B, U, D, L, R はすべて互いに異なる

入力例1

5 2 3 6 4 1

出力例1

1
2
1
1
0
1

入力例2

4 1 3 6 2 5

出力例2

2
1
1
0
1
1

問題一覧へ戻る

ページの先頭へ戻る