Skip to content

Instantly share code, notes, and snippets.

@mattsan
Last active July 1, 2017 03:21
Show Gist options
  • Save mattsan/242361faac1f85e75d237e66831d4b44 to your computer and use it in GitHub Desktop.
Save mattsan/242361faac1f85e75d237e66831d4b44 to your computer and use it in GitHub Desktop.
第37期合宿 どう書く 問題

BREAKOUT 6x6

問題の概要

アルファベットと数字を図のように 6x6 に並べたマスがあります。

  • A の位置で右向きからスタートし、入力に従って方向転換と移動を繰り返します。
  • 入力が R だった場合は 45° 右向きに、 L だった場合は 45° 左向きに向きを変えます。
  • 入力が数値だった場合、現在の向きで数値の分だけマス目を移動します。移動した終点の位置の文字を出力に追加します。
  • 現在の向きで前進できない場合は向きを反転させます。このとき前進できない方向が横方向のみの場合は横方向成分のみ、縦方向のみの場合は縦方向成分のみ、反転します。
  • 各々の移動の終点の文字を連結した文字列を出力してください。

入力

  • 入力は数値と RL を連結した文字列です。
  • 0RR1L8RRR3LLL1

出力

  • 各々の移動の終端の文字を連結した文字列を出力します。
  • 上記の入力の例の出力ならば AGILE

補足

  • 文字の追加は移動した場合にのみおこない、向きを変更した時はおこないません。
  • 数値(移動量)は 0 の場合(移動しない、現在の位置の文字が出力する文字)や、9 よりも大きい場合(二桁以上の場合)があります。
  • RL は連続するケースがあります。その場合、RL が混在するケースもあります。
  • 先に進めないことによる方向の反転は、移動の前に発生します。

  • 不正な入力に対処する必要はありません。

サンプルデータ

# 入力 出力
1 0RR1L8RRR3LLL1 AGILE
2 L4 3
3 LL3 S
4 L16L7 32
5 7RR16 D2
6 18L15 C8
7 RRL18R6 O1
8 L0R16L1 AEJ
9 7L16L19 D28
10 19L13LLR9 BUT
11 LLR14RLR3R3L2 3WDB
12 L19LLR9RR6L14 HI7K
13 4RLR0LRLR6R10 EEYY
14 LRL7RLRR15RLR14 VOO
15 17LLRL15LLL15RR0 D8CC
16 LRLL10L9L4LRR17LL7 AHJMJ
17 17L10RL19RRRL19LL6 DDKP2
18 18LL5LLLR3RLLL8L10 C70XX
19 L15LR15L7L4L17RRL6 0ADZ1Q
20 7L6R8R3R1L10R10LL17 D2ZWXXX4
21 RRR19L1LLLL7LR10RR12 HGJJJ
22 11L1R6RL3R4RLL19RR14 BIUC3WS
23 RLL10RR19L19R13R5LRR1 AHINTO
24 16RRL11RL19LRRL8R1R18 EJEQRD
25 8LLR8RL19R7RL9L6L15L4 CQXUTVPN
26 12L6RLRL4RL10RLR7LRL19 C1CCBI
27 RLRR2LL9R8L6RRLR6L11L11 MN22DIO
28 RLR12R6R17LLRR0R15L12L2 OO669WU
29 14L19LL19L1RRR15RRR4RL3 EJQPUI1
30 14LL6R8R2LR16R17R18L18RLR2 E311OLJTV
31 LLR10LL16L0R16LL6RL4LR1RR9 A33O1OJC
32 L0RRL1L8LR13R10LLRL9RR12L16L8 ABNIIHTJL
33 11R7RLR4R2LL14LL12L7R7LR6R0LR1 BUISWILO11Z
34 7RRRR18RRLR19L10L5RLR16LL7L1L11 DBHHKSDCH
35 R16R8RL7RLR13L3R13L7LLL10L9LRRL7 33KZTEWWQK
36 LRRR10L0RLR6RLL11LR18R19L13L13R15 AAYT67NH3
37 16R0RRLL3LR15LL8RRLR18L12R11L6R14 EETQ3OQXTX
38 15RL0RR2R2RL9R11LRRL15R12RRR0RL16 FFR2WVU997
39 RLLL2R13LRRL13LRL18L11RRRL17R1LRR8 M8QQLOPB
40 R16RL7LLL17L5LR5RL7R6LR7RRL11RRRR17 3V2I2GKJQ8
41 11L13R2LRR0RL14RLRL12L9LLRL12L0RLL19RR15 BW99GIHHHGY

C/C++/Java 用サンプルデータ

/*  1 */ test("0RR1L8RRR3LLL1", "AGILE");
/*  2 */ test("L4", "3");
/*  3 */ test("LL3", "S");
/*  4 */ test("L16L7", "32");
/*  5 */ test("7RR16", "D2");
/*  6 */ test("18L15", "C8");
/*  7 */ test("RRL18R6", "O1");
/*  8 */ test("L0R16L1", "AEJ");
/*  9 */ test("7L16L19", "D28");
/* 10 */ test("19L13LLR9", "BUT");
/* 11 */ test("LLR14RLR3R3L2", "3WDB");
/* 12 */ test("L19LLR9RR6L14", "HI7K");
/* 13 */ test("4RLR0LRLR6R10", "EEYY");
/* 14 */ test("LRL7RLRR15RLR14", "VOO");
/* 15 */ test("17LLRL15LLL15RR0", "D8CC");
/* 16 */ test("LRLL10L9L4LRR17LL7", "AHJMJ");
/* 17 */ test("17L10RL19RRRL19LL6", "DDKP2");
/* 18 */ test("18LL5LLLR3RLLL8L10", "C70XX");
/* 19 */ test("L15LR15L7L4L17RRL6", "0ADZ1Q");
/* 20 */ test("7L6R8R3R1L10R10LL17", "D2ZWXXX4");
/* 21 */ test("RRR19L1LLLL7LR10RR12", "HGJJJ");
/* 22 */ test("11L1R6RL3R4RLL19RR14", "BIUC3WS");
/* 23 */ test("RLL10RR19L19R13R5LRR1", "AHINTO");
/* 24 */ test("16RRL11RL19LRRL8R1R18", "EJEQRD");
/* 25 */ test("8LLR8RL19R7RL9L6L15L4", "CQXUTVPN");
/* 26 */ test("12L6RLRL4RL10RLR7LRL19", "C1CCBI");
/* 27 */ test("RLRR2LL9R8L6RRLR6L11L11", "MN22DIO");
/* 28 */ test("RLR12R6R17LLRR0R15L12L2", "OO669WU");
/* 29 */ test("14L19LL19L1RRR15RRR4RL3", "EJQPUI1");
/* 30 */ test("14LL6R8R2LR16R17R18L18RLR2", "E311OLJTV");
/* 31 */ test("LLR10LL16L0R16LL6RL4LR1RR9", "A33O1OJC");
/* 32 */ test("L0RRL1L8LR13R10LLRL9RR12L16L8", "ABNIIHTJL");
/* 33 */ test("11R7RLR4R2LL14LL12L7R7LR6R0LR1", "BUISWILO11Z");
/* 34 */ test("7RRRR18RRLR19L10L5RLR16LL7L1L11", "DBHHKSDCH");
/* 35 */ test("R16R8RL7RLR13L3R13L7LLL10L9LRRL7", "33KZTEWWQK");
/* 36 */ test("LRRR10L0RLR6RLL11LR18R19L13L13R15", "AAYT67NH3");
/* 37 */ test("16R0RRLL3LR15LL8RRLR18L12R11L6R14", "EETQ3OQXTX");
/* 38 */ test("15RL0RR2R2RL9R11LRRL15R12RRR0RL16", "FFR2WVU997");
/* 39 */ test("RLLL2R13LRRL13LRL18L11RRRL17R1LRR8", "M8QQLOPB");
/* 40 */ test("R16RL7LLL17L5LR5RL7R6LR7RRL11RRRR17", "3V2I2GKJQ8");
/* 41 */ test("11L13R2LRR0RL14RLRL12L9LLRL12L0RLL19RR15", "BW99GIHHHGY");
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment