FizzBuzz is where a range of positive integers is taken, and numbers divisible by 3 are replaced with "Fizz", divisible by 5 with "Buzz" and divisible by 15 with "FizzBuzz".
I've got some FizzBuzz output here. Unfortunately, it's been shuffled:
4
Fizz
Fizz
Buzz
2
A bit of logic shows us that this is 2, Fizz, 4, Buzz, Fizz
shuffled.
Your challenge is to take a range of FizzBuzz, shuffled, and put it in any order such that it's valid FizzBuzz. For example, given Fizz, Fizz, Buzz, 11
we can work out that the correct order is Fizz, Buzz, 11, Fizz
(corresponding to 9, 10, 11, 12
)
Input will always be rearrangeable into valid FizzBuzz.
You may choose any values that cannot appear as integers to represent Fizz, Buzz and FizzBuzz.
This is code-golf, shortest wins!
Testcases
1, 2, Fizz, 4, Buzz -> 1, 2, Fizz, 4, Buzz
Fizz, 4, Buzz, 1, 2 -> 1, 2, Fizz, 4, Buzz
Fizz, Fizz, Buzz, 11 -> Fizz, Buzz, 11, Fizz
Fizz, Buzz, 8, Buzz, 7, Fizz -> Buzz, Fizz, 7, 8, Fizz, Buzz
Buzz, Fizz -> either way
29, 31, FizzBuzz -> 29, FizzBuzz, 31
28, Fizz, FizzBuzz, 29 -> Fizz, 28, 29, FizzBuzz
8, 7 -> 7, 8
8, Fizz, 7, Buzz
, which could beBuzz, Fizz, 7, 8
or7, 8, Fizz, Buzz
. \$\endgroup\$