Algorithmus
[BOJ-2579] Treppensteigen Problem und Dynamische Programmierung (Golang)
Einführung Tatsächlich war es ein Problem, dass ich mich so lange nicht mit dynamischer Programmierung beschäftigt habe. Als ich es früher getan habe, habe ich es nur grob verstanden und bin schnell darüber hinweggegangen. Aus diesem Grund konnte ich das Problem nicht einmal in Angriff nehmen. Deshalb habe ich mir vorgenommen, dieses Mal die dynamische Programmierung gründlich zu studieren und habe versucht, das Problem zu lösen.
26. Mai 2025
[Programmers] Joystick (Golang)
Problem Programmers - Joystick Vervollständigen Sie den Namen mit dem Joystick. Am Anfang besteht alles nur aus A. z.B.) Wenn der zu vervollständigende Name drei Buchstaben hat, dann AAA, wenn vier Buchstaben, dann AAAA Indem Sie den Joystick in jede Richtung bewegen, sieht es folgendermaßen aus: ▲ - Nächster Buchstabe ▼ - Vorheriger Buchstabe (wenn man von A nach unten geht, ist es Z) ◀ - Den Cursor nach links bewegen (wenn man an der ersten Position nach links geht, ist der Cursor am letzten Zeichen) ▶ - Den Cursor nach rechts bewegen (wenn man an der letzten Position nach rechts geht, ist der Cursor am ersten Zeichen) Zum Beispiel kann man "JAZ" mit der folgenden Methode erstellen: - Bewege den Joystick 9 Mal nach oben, um J zu vervollständigen. - Bewege den Joystick einmal nach links, um den Cursor an die letzte Zeichenposition zu bewegen. - Bewege den Joystick einmal nach unten, um Z zu vervollständigen. Deshalb kann man "JAZ" mit 11 Bewegungen erstellen, und dies ist die minimale Bewegung. Erstellen Sie eine Funktion namens solution, die die minimale Anzahl der Joystickmanipulationen für den gegebenen Namen name als Parameter zurückgibt. Dieses Problem ist im Ausdrucksteil des Coding-Tests als LEVEL2 kategorisiert, aber ich fand es unerwartet schwierig, sodass ich mich fragte, warum es LEVEL2 ist.
26. Mai 2025
[Programmers] Einreiseprüfung (Golang)
Problem Programmers Problem Einreiseprüfung n Personen stehen in der Schlange, um die Einreiseprüfung zu durchlaufen. Jeder Prüfer an den Prüfstationen benötigt unterschiedlich viel Zeit für die Prüfung. Zu Beginn sind alle Prüfstationen leer. An einer Prüfstation kann immer nur eine Person gleichzeitig geprüft werden. Die Person, die vorne steht, kann zur nächsten freien Prüfstation gehen und sich dort prüfen lassen. Wenn jedoch eine Prüfstation schneller fertig wird, kann sie auch warten und dann zur schnelleren Prüfstation gehen. Das Ziel ist es, die Zeit, die benötigt wird, damit alle Personen geprüft werden, zu minimieren. Die Anzahl der auf Einreiseprüfung wartenden Personen n und ein Array times, das die Zeit enthält, die jeder Prüfer für die Prüfung einer Person benötigt, werden als Parameter übergeben. Schreiben Sie die Funktion solution, die die minimale Zeit zurückgibt, die benötigt wird, damit alle Personen geprüft werden. Einschränkungen - Die Anzahl der Personen, die auf die Einreiseprüfung warten, ist mindestens 1 und maximal 1.000.000.000. - Die Zeit, die jeder Prüfer für die Prüfung einer Person benötigt, liegt zwischen 1 und 1.000.000.000 Minuten. - Die Anzahl der Prüfer beträgt mindestens 1 und maximal 100.000. Ansatz In der Regel kann man bei so breiten Bereichen das Problem mit Binärsuche lösen.
23. Mai 2025
[BOJ-3273] Lass uns das Problem der zwei Summen auf zwei Arten lösen (Hash, Two Pointer) Mit Go
Problem BOJ-3273 Direktlink n verschiedene positive Ganzzahlen a1, a2, ..., an. Die Werte ai sind natürliche Zahlen, die >= 1 und <= 1000000 sind. Schreibe ein Programm, das die Anzahl der Paare (ai, aj) berechnet, die die Bedingung ai + aj = x (1 ≤ i < j ≤ n) erfüllen. Es ist gefragt, ob die Summe aus dem gegebenen Array die vorgegebene Zahl x ergibt.
21. Mai 2025
[BOJ-9934] Vollständiger Binärbaum (Golang)
Überblick Ich habe mich entschieden, diesen Beitrag zu schreiben, während ich mich auf einen Jobwechsel vorbereite und nach langer Zeit wieder die Baumalgorithmen studiere. Das Problem des vollständigen Binärbaums ist ein Problem, bei dem die Form eines vollständigen Binärbaums anhand eines in-Order Traversierung anzuzeigenden Arrays ermittelt werden muss. Um dieses Problem zu lösen, sollte man zunächst das Konzept der in-Order Traversierung verstehen. In-Order Traversierung Die Kriterien für vor, in und nach der Traversierung basieren auf der Sichtweise des Knotens.
21. Mai 2025