Hintergrundgeschichte [was nicht stimmt]
Ein Klavier ist wie folgt aufgebaut:
Bei meinem Klavier sind jedoch alle schwarzen Tasten defekt!
Ich möchte trotzdem einige Akkorde auf meinem kaputten Klavier spielen können.
In der Musik ist ein Akkord eine Gruppe von Noten, die zusammen gespielt werden. Um die Eingabe von Akkorden zu ermöglichen, werde ich zunächst definieren, was ein Halbton ist.
Was ist ein Halbton?
Ein Halbton ist die kleinste Entfernung in der westlichen Musik. Wenn Sie sich den oberen Teil des Klaviers ansehen, sehen Sie, dass Sie normalerweise von einer schwarzen zu einer weißen Taste wechseln können oder umgekehrt. Zwischen B
und C
und E
und F
gibt es jedoch keinen schwarzen Schlüssel.
Was ist ein Akkord?
Für diese Herausforderung definieren wir einen Akkord als eine Reihe von Noten mit einer bestimmten Anzahl von Halbtönen dazwischen. Nehmen wir zum Beispiel eine Aufnahme eines 4-3-3
Akkords ab C
(für Musiker ist dies ein V 7- Akkord in F-Dur). Wir fangen an bei C
. Wir zählen bis 4 Halbtonschritte: C#
, D
, D#
, E
. Die nächste Note ist E
, und wir zählen 3 Halbtonschritten nach oben danach: F
, F#
, G
. Die nächste Note ist G
, und wir zählen 3 Halbtonschritten nach oben danach: G#
, A
, Bb
. Also bekommen wir C-E-G-Bb
. Yay! Aber warte ... Bb
ist ein schwarzer Schlüssel und die sind kaputt ... Wenn wir jedoch anfangen G
, bekommen wir G-B-D-F
! Yay!
Eingang
Die Eingabe erfolgt als Liste von Ganzzahlen in einem beliebigen vernünftigen Format. Dies stellt den oben beschriebenen Akkord dar.
Ausgabe
Die Ausgabe sollte eine Liste von Notizen sein, für die ich anfangen kann, nur weiße Tasten zu verwenden. Dies kann auch nur eine Zeichenfolge aller bis zu 7 Noten sein, da alle Schlüsselnamen aus einem Zeichen bestehen. Sie müssen auch mit einer leeren Ausgabe umgehen können.
Testfälle
input -> output // comments
4 3 -> C F G // this is a major triad
3 4 -> D E A // this is a minor triad
4 3 3 -> G // this is the major-minor seventh chord
3 3 3 -> [empty output] // this is the diminished-diminished seventh chord. All of them use black keys
4 4 -> [empty output] // this is an augmented triad
3 3 -> B // this is a diminished triad
1 -> B E // this is just a minor second
11 -> C F // this is just a major seventh
Andere Spezifikationen
- Standardschlupflöcher verboten
- Sie können davon ausgehen, dass die Eingabe mindestens eine Ganzzahl hat
- Sie können davon ausgehen, dass alle Ganzzahlen nicht negativ und kleiner als 12 sind (da das Klavier alle 12 Noten wiederholt).
- Die Ausgabe kann in beliebiger Reihenfolge erfolgen
Gewinnkriterien
Die kürzeste gültige Einreichung ab dem 15. April wird akzeptiert.