サイコロを転がす 〜 横へな 2013.7.6

問題

サイコロがある。
このサイコロは(もちろん)向かい合う面の目の数の合計は 7 になっている。
また、サイコロの 1 の目が上に、2の目が北に向くようにおいた場合、西に3が来るようになっている。
このサイコロを、1の目が上に、2の目が北に、3の目が西に来るように置く。(下図 も参照)

初期状態のサイコロの向き
このサイコロを北向きに転がすと、北にあった2の面が下に行き、下図のようになる。
初期状態から北に転がしたサイコロの向き

入力文字列の指示に従ってサイコロを転がした場合、上に来る目を順に並べた文字列を作れ。

入力と出力

入力文字列は NNESWWS のように、 E W S N のいずれかの文字が区切り文字なしで並んでいる。
E W S N はそれぞれ東西南北を表す。
NNESWWS は、 北,北,東,南,西,西,南 という移動を意味しており、上になる目を順に並べると
15635624 となる。この文字列を出力すればよい。

補足

サンプルデータ

# 入力 期待
0 NNESWWS 15635624
1 EEEE 13641
2 WWWW 14631
3 SSSS 12651
4 NNNN 15621
5 EENN 13651
6 WWNN 14651
7 SSNN 12621
8 NENNN 153641
9 NWNNN 154631
10 SWWWSNEEEN 12453635421
11 SENWSWSNSWE 123123656545
12 SSSWNNNE 126546315
13 SWNWSSSWWE 12415423646
14 ENNWWS 1354135
15 ESWNNW 1321365
16 NWSSE 154135
17 SWNWEWSEEN 12415154135
18 EWNWEEEEWN 13154532426
19 WNEWEWWWSNW 145151562421
20 NNEE 15631
21 EEEEWNWSW 1364145642
22 SENNWWES 123142321
23 SWWWSNSNESWW 1245363635631
24 WESSENSE 141263231
25 SWNSSESESSS 124146231562
26 ENS 1353
27 WNN 1453
28 SSEENEEEN 1263124536
29 NWSNNNW 15414632
30 ESSSSSWW 132453215
31 ESE 1326
32 SNWNWWNSSSS 121456232453
33 SWEESEN 12423653
34 NEEWNSSWWW 15323631562
35 WSEW 14212
36 SWSNNNSNWE 12464131353
37 ENWEWSEEW 1351513545
38 WSEWN 142124
39 EWNEESEWE 1315321414
40 NESEEN 1531263
41 WSW 1426
42 ENEWE 135656

C/C++/Java 用のテストデータ