História de fundo [o que não é verdade]
Um piano é configurado assim:
No entanto, no meu piano, todas as teclas pretas estão quebradas!
Ainda quero tocar alguns acordes no meu piano quebrado.
Na música, um acorde é um grupo de notas tocadas juntas. Para permitir a entrada de acordes, primeiro definirei o que é um semitom.
O que é um semitom?
Um semitom é a menor distância na música ocidental. Se você observar a parte superior do piano, verá que geralmente pode passar de uma tecla preta para uma tecla branca ou vice-versa; no entanto, entre B
e C
e E
e F
não há nenhuma chave preta.
O que é um acorde?
Para os propósitos deste desafio, definimos um acorde como um monte de notas com um certo número de semitons entre eles. Por exemplo, vamos dar uma olhada em um 4-3-3
acorde a partir de C
(para pessoas da música, este é um acorde V 7 em Fá maior). Começamos às C
. Contamos até 4 semitons: C#
, D
, D#
, E
. A próxima nota é E
, e contamos 3 semitons depois que: F
, F#
, G
. A próxima nota é G
, e contamos 3 semitons depois que: G#
, A
, Bb
. Então, nós chegamos C-E-G-Bb
. Yay! Mas espere ... Bb
é uma chave preta e eles estão quebrados ... No entanto, se começarmos G
, conseguimos G-B-D-F
! Yay!
Entrada
A entrada é fornecida como uma lista de números inteiros em qualquer formato razoável. Isso representa o acorde como descrito acima.
Resultado
A saída deve ser uma lista de notas nas quais eu posso começar a precisar usar apenas teclas brancas. Isso também pode ser apenas uma sequência de até 7 notas, porque todos os nomes-chave terão um caractere. Você também deve poder ter uma saída vazia.
Casos de teste
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
Outras especificações
- Lacunas padrão proibidas
- Você pode assumir que a entrada possui pelo menos um número inteiro
- Você pode assumir que todos os números inteiros são não negativos e menores que 12 (porque o piano repete a cada 12 notas)
- A saída pode estar em qualquer ordem
Critérios Vencedores
O envio mais curto válido a partir de 15 de abril será aceito.