faecher:informatik:oberstufe:java:aoc:aoc2022:day4:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
faecher:informatik:oberstufe:java:aoc:aoc2022:day4:start [04.12.2022 18:44] Frank Schiebelfaecher:informatik:oberstufe:java:aoc:aoc2022:day4:start [04.12.2022 18:47] (aktuell) – [Tipps und Hinweise] Frank Schiebel
Zeile 19: Zeile 19:
 ===== Tipps und Hinweise ===== ===== Tipps und Hinweise =====
  
-++++ Methodengerüst |+++++ Methodengerüst Basis |
 <code java> <code java>
     public day4() throws Exception {     public day4() throws Exception {
Zeile 51: Zeile 51:
             // dann werden die Bereiche anschließend als überlappend             // dann werden die Bereiche anschließend als überlappend
             // zur Antwort addiert             // zur Antwort addiert
 +            
 +            if (overlapping) {
 +                answer++;
 +            }
 +
 +        }
 +
 +        System.out.println(answer);
 +        return answer;
 +    }
 +
 +
 +
 +</code>
 +
 +++++
 +
 +
 +++++ Methodengerüst mit Beispielbedingung |
 +<code java>
 +    public day4() throws Exception {
 +        // Einlesen am Komma getrennt, wir erhalten zwei Felder.
 +        // line[0] - erster Bereich 
 +        // line[1] - zweiter Bereich
 +        this.readInput(inputFile,',');
 +        this.printInput();
 +    }
 +
 +    public int partOne() {
 +        int answer=0;
 +        for(String[] line: input) {
 +            // Bereiche trennen
 +            String[] bereich1 = line[0].split("-");
 +            String[] bereich2 = line[1].split("-");
 +            // Kontrollausgabe
 +            System.out.println("[Bereich 1] " + bereich1[0] + " bis " + bereich1[1]);
 +            System.out.println("[Bereich 2] " + bereich2[0] + " bis " + bereich2[1]);
 +            // Grenzen mit "sprechenden Namen" bezeichnen
 +            int start1 = Integer.parseInt(bereich1[0]);
 +            int start2 = Integer.parseInt(bereich2[0]);
 +            int end1 = Integer.parseInt(bereich1[1]);
 +            int end2 = Integer.parseInt(bereich2[1]);
 +
 +            boolean overlapping=false;
 +            
 +            // Erste Bedingung
 +            if (start1 < start2 && start2 <= end1) {
 +                // Bereich 2 kann in Bereich 1 enthalten sein, ist es aber nur dann
 +                // wenn end2 <= end1 ist
 +                if (end2 <= end1) {
 +                    System.out.println("Bereich 2 ist in Bereich 1 enthalten");
 +                    overlapping=true;
 +                }
 +                
 +            }
 +            
 +            // Hier müssen weitere Bedingungen (if ...) eingefügt werden, die 
 +            // andere Möglichkeiten überprüfen, wie sich die Bereiche überlappen
 +            // können. 
 +     
                          
             if (overlapping) {             if (overlapping) {
  • faecher/informatik/oberstufe/java/aoc/aoc2022/day4/start.1670179472.txt.gz
  • Zuletzt geändert: 04.12.2022 18:44
  • von Frank Schiebel