Da ich gerade in der Prüfungsvorbereitung bin, schaue ich mir natürlich alte Klausuren der letzten Jahre an. Besonders im Fach Programmieren (Java) scheint das ja recht naheliegend. Die obige Fragestellung, die an Sudoku angelehnt und eigentlich noch weiter vereinfacht ist, schien mir zwar auf den ersten Blick recht simpel, dennoch saß ich recht lange vor meinem Eclipse und bekam einfach nichts Ordentliches heraus. Klar, bei der konkreten Fragestellung mit 9 Zahlen hätte man auch ganz simpel 9 Variablen anlegen können und diese dann einzeln abfragen. Wäre in der Klausur bestimmt akzeptiert worden, aber schön sieht anders aus. So, nachdem ich dann mein ganzes Umfeld mit diesem „Rätsel“ genervt hatte, kam die eine oder andere interessante Idee für einen Ansatz heraus.
Hier also meiner:
public class Sudoku { public static boolean sudokuChecker(int sudokufeld[][]) { int anzahl = sudokufeld.length * sudokufeld[0].length; boolean[] pruefArray = new boolean [anzahl]; for (int i = 0; i < sudokufeld.length; i++) { for (int j = 0; j < sudokufeld[0].length; j++) { pruefArray[sudokufeld[i][j]-1] = true; // boolsches Array anlegen, // Wenn Index = zu prüfende Zahl // -> auf true setzen } } for (int z = 0; z < pruefArray.length; z++) { if (pruefArray[z] != true) return false; // gibt es ein Feld im Prüfarray, das // nicht true ist? } return true; } public static void main(String[] args) { int[][] sudokufeld = {{1,2,3} , {4,5,6} , {7,8,9}}; System.out.println(sudokuChecker(sudokufeld)); } }
Sehen sicher putzig aus, diese Gehversuche eines Java-Neulings. Dürfte aber soweit funktionieren und sieht nun im Nachhinein auch ganz simpel und logisch aus – und funktioniert mit quadratischen Feldern beliebiger Größe. Ich frage mich nur, ob ich das auch in der Klausur (die mit Kulli und Papier zu bewältigen ist) so hinbekommen hätte…
greg
Neueste Artikel von greg (alle ansehen)
- News: Noch ein neuer Blog von mir – für Studenten - 14. April 2020
- Mein neuer Blog – alles auf Anfang - 12. Juli 2019
- E-Commerce Studium in Würzburg beendet – ein Resümee - 14. April 2017