Diese Herausforderung wurde von der Werbung dieser Wendy aus dem Jahr 1984 inspiriert .
Illustration von TS Rogers
Ihre Aufgabe ist es, ein hexadezimales 0xBEEF auf einem binären Brötchen zu finden.
Das Rindfleisch besteht aus folgendem Muster:
1 0 1 1 (0xB)
1 1 1 0 (0xE)
1 1 1 0 (0xE)
1 1 1 1 (0xF)
Und das 'Brötchen' besteht aus einer 12x12-Binärmatrix, wie zum Beispiel:
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
Eingang
Ihr Programm oder Ihre Funktion nimmt die binäre Matrix als Eingabe. Das Matrixformat ist sehr flexibel, muss aber in Ihrer Antwort klar beschrieben werden.
Zum Beispiel:
eine einzelne Binärzeichenfolge mit oder ohne Trennzeichen zwischen den Zeilen:
"111001111110 110100100000..."
oder:
"111001111110110100100000..."
ein Array von binären Strings:
["111001111110", "110100100000", ...]
ein Array von Zahlen (jede Zahl beschreibt eine Zeile, die einmal in binäre Zahlen umgewandelt und mit Nullen aufgefüllt wurde):
[3710, 3360, ...]
Ausgabe
Die Koordinaten (X, Y)
des 'Rindfleisches', (0, 0)
wobei es sich um die obere linke Ecke des Brötchens handelt.
Alternativ können Sie 1-basierte Koordinaten verwenden (jedoch keine Mischung aus beiden Formaten, z. B. 0-basierte für X und 1-basierte für Y).
Für das obige Beispiel lautet die erwartete Antwort (3, 4)
(0-basiert) oder (4, 5)
(1-basiert):
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
Auch hier würde jedes vernünftige Format funktionieren, solange es in Ihrer Antwort angegeben ist. Bitte erwähnen Sie auch, ob Sie 0-basierte oder 1-basierte Koordinaten verwenden.
Regeln
- Sie können davon ausgehen, dass sich immer genau ein Rindfleisch auf dem Brötchen befindet. Ihr Code ist nicht erforderlich, um Fälle mit mehr als einem Rindfleisch oder gar keinem Rindfleisch zu unterstützen.
- Das Rindfleischmuster wird immer wie beschrieben angezeigt. Es wird niemals gedreht oder gespiegelt.
- Das ist Code-Golf, also gewinnt die kürzeste Antwort in Bytes. Standardlücken sind verboten.
Testfälle
In den folgenden Testfällen wird jede Zeile der Matrix als ihre Dezimaldarstellung ausgedrückt.
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
(dh umgekehrte Reihenfolge)?
(1,1)
)?