この課題は、1984年のウェンディのコマーシャルに触発されました。
TSロジャースによるイラスト
あなたの仕事は、バイナリバンで16進数の0xBEEFを見つけることです。
「牛肉」は次のパターンで構成されています。
1 0 1 1 (0xB)
1 1 1 0 (0xE)
1 1 1 0 (0xE)
1 1 1 1 (0xF)
「bun」は、次のような12x12バイナリマトリックスで構成されます。
1 1 1 0 0 1 1 1 1 1 1 0
1 1 0 1 0 0 1 0 0 0 0 0
0 1 0 0 0 1 1 1 1 1 0 1
1 0 0 1 0 0 1 0 0 1 0 0
1 0 0 1 0 1 1 0 0 1 1 1
1 1 1 1 1 1 0 0 0 0 1 0
1 1 0 1 1 1 0 0 0 0 0 1
1 0 0 1 1 1 1 0 0 0 0 1
1 0 0 1 1 1 0 1 1 1 1 1
1 1 1 1 1 0 0 1 1 1 1 1
1 0 0 0 0 1 0 1 0 1 1 1
1 1 0 0 1 1 0 0 0 0 1 1
入力
プログラムまたは関数は、バイナリマトリックスを入力として受け取ります。マトリックス形式は非常に柔軟ですが、回答で明確に説明する必要があります。
例えば:
行間の区切りの有無にかかわらず、単一のバイナリ文字列:
"111001111110 110100100000..."
または:
"111001111110110100100000..."
バイナリ文字列の配列:
["111001111110", "110100100000", ...]
数値の配列(各数値は一度変換されてバイナリに戻され、ゼロで左詰めされる):
[3710, 3360, ...]
出力
パンの左上隅(X, Y)
である「牛肉」の座標(0, 0)
。
または、1ベースの座標を使用することもできます(ただし、Xの場合は0ベース、Yの場合は1ベースなど、両方の形式の組み合わせは使用できません)。
上記の例では、予想される答えは(3, 4)
(0ベース)または(4, 5)
(1ベース)です。
00 01 02 03 04 05 06 07 08 09 10 11
00 1 1 1 0 0 1 1 1 1 1 1 0
01 1 1 0 1 0 0 1 0 0 0 0 0
02 0 1 0 0 0 1 1 1 1 1 0 1
03 1 0 0 1 0 0 1 0 0 1 0 0
04 1 0 0 [1 0 1 1] 0 0 1 1 1
05 1 1 1 [1 1 1 0] 0 0 0 1 0
06 1 1 0 [1 1 1 0] 0 0 0 0 1
07 1 0 0 [1 1 1 1] 0 0 0 0 1
08 1 0 0 1 1 1 0 1 1 1 1 1
09 1 1 1 1 1 0 0 1 1 1 1 1
10 1 0 0 0 0 1 0 1 0 1 1 1
11 1 1 0 0 1 1 0 0 0 0 1 1
繰り返しますが、適切な形式は、回答で指定されている限り機能します。0ベースまたは1ベースの座標を使用している場合も記載してください。
ルール
- パンには常に「ビーフ」が1つだけあると安全に想定できます。あなたのコードは、複数の牛肉がある場合や牛肉がまったくない場合をサポートする必要はありません。
- 牛肉のパターンは、常に説明どおりに表示されます。いかなる方法でも回転またはミラーリングされることはありません。
- これはコードゴルフなので、バイト単位の最短回答が勝ちです。標準的な抜け穴は禁止されています。
テストケース
次のテストケースでは、マトリックスの各行は10進表現として表されます。
Input : [ 3710, 3360, 1149, 2340, 2407, 4034, 3521, 2529, 2527, 3999, 2135, 3267 ]
Output: [ 3, 4 ]
Input : [ 1222, 3107, 1508, 3997, 1906, 379, 2874, 2926, 1480, 1487, 3565, 633 ]
Output: [ 3, 7 ]
Input : [ 2796, 206, 148, 763, 429, 1274, 2170, 2495, 42, 1646, 363, 1145 ]
Output: [ 6, 4 ]
Input : [ 3486, 3502, 1882, 1886, 2003, 1442, 2383, 2808, 1416, 1923, 2613, 519 ]
Output: [ 1, 1 ]
Input : [ 3661, 2382, 2208, 1583, 1865, 3969, 2864, 3074, 475, 2382, 1838, 127 ]
Output: [ 8, 8 ]
Input : [ 361, 1275, 3304, 2878, 3733, 3833, 3971, 3405, 2886, 448, 3101, 22 ]
Output: [ 0, 3 ]
Input : [ 3674, 2852, 1571, 3582, 1402, 3331, 1741, 2678, 2076, 2685, 734, 261 ]
Output: [ 7, 7 ]
y
、x
(つまり、順序を逆に)?
(1,1)
ますか(左上が)。