Backstory [ce qui n'est pas vrai]
Un piano est configuré comme ceci:
Cependant, sur mon piano, toutes les touches noires sont cassées!
Je veux quand même pouvoir jouer des accords sur mon piano cassé.
En musique, un accord est un groupe de notes jouées ensemble. Pour permettre la saisie d'accords, je vais d'abord définir ce qu'est un demi-ton.
Qu'est-ce qu'un demi-ton?
Un demi-ton est la plus petite distance dans la musique occidentale. Si vous regardez la partie supérieure du piano, vous voyez que vous pouvez généralement passer d'une touche noire à une touche blanche, ou vice versa; cependant, entre B
et C
et E
et F
il n'y a pas de clé noire.
Qu'est-ce qu'un accord?
Pour les besoins de ce défi, nous définissons un accord comme un ensemble de notes avec un certain nombre de demi-tons entre elles. Par exemple, prenons un 4-3-3
accord avec un accord commençant C
(pour les musiciens, il s'agit d'un accord V 7 en fa majeur). Nous commençons à C
. Nous comptons jusqu'à 4 demi - tons: C#
, D
, D#
, E
. La note suivante est E
, et nous comptons 3 demi - tons après: F
, F#
, G
. La note suivante est G
, et nous comptons 3 demi - tons après: G#
, A
, Bb
. Donc, nous obtenons C-E-G-Bb
. Yay! Mais attendez ... Bb
est une clé noire et ceux-ci sont cassés ... Cependant, si nous partons de G
, nous obtenons G-B-D-F
! Yay!
Contribution
L'entrée est donnée sous la forme d'une liste d'entiers dans n'importe quel format raisonnable. Cela représente l'accord tel que décrit ci-dessus.
Production
La sortie devrait être une liste de notes sur lesquelles je ne peux commencer qu'à utiliser des touches blanches. Il peut également s'agir simplement d'une chaîne de 7 notes au maximum, car tous les noms clés seront composés d'un seul caractère. Vous devez également pouvoir gérer une sortie vide.
Cas de test
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
Autres spécifications
- Échappatoires standard interdites
- Vous pouvez supposer que l'entrée a au moins un entier
- Vous pouvez supposer que tous les nombres entiers sont non négatifs et inférieurs à 12 (car le piano répète toutes les 12 notes)
- La sortie peut être dans n'importe quel ordre
Critères gagnants
La soumission valide la plus courte au 15 avril sera acceptée.