Communities

Writing
Writing
Codidact Meta
Codidact Meta
The Great Outdoors
The Great Outdoors
Photography & Video
Photography & Video
Scientific Speculation
Scientific Speculation
Cooking
Cooking
Electrical Engineering
Electrical Engineering
Judaism
Judaism
Languages & Linguistics
Languages & Linguistics
Software Development
Software Development
Mathematics
Mathematics
Christianity
Christianity
Code Golf
Code Golf
Music
Music
Physics
Physics
Linux Systems
Linux Systems
Power Users
Power Users
Tabletop RPGs
Tabletop RPGs
Community Proposals
Community Proposals
tag:snake search within a tag
answers:0 unanswered questions
user:xxxx search by author id
score:0.5 posts with 0.5+ score
"snake oil" exact phrase
votes:4 posts with 4+ votes
created:<1w created < 1 week ago
post_type:xxxx type of post
Search help
Notifications
Mark all as read See all your notifications »
Challenges

Post History

84%
+9 −0
Challenges Coat of Many Colours

Challenge Given a list of unique colour names as input, sort them in the order that they first appear in Joseph's Amazing Technicolour Dreamcoat. Example Input: green, blue, red, brown Outpu...

6 answers  ·  posted 3y ago by Shaggy‭  ·  last activity 3y ago by radarek‭

#1: Initial revision by user avatar Shaggy‭ · 2021-08-13T10:06:55Z (about 3 years ago)
Coat of Many Colours
## Challenge
Given a list of **unique** colour names as input, sort them in the order that they first appear in [Joseph's Amazing Technicolour Dreamcoat](https://youtu.be/snYP49EAIWg?t=2m51s).

---
## Example
    Input:  green, blue, red, brown
    Output: red, green, brown, blue

The full list of colours, in order, is:

     1. red
     2. yellow
     3. green
     4. brown
     5. scarlet
     6. black
     7. ochre
     8. peach
     9. ruby
    10. olive
    11. violet
    12. fawn
    13. lilac
    14. gold
    15. chocolate
    16. mauve
    17. cream
    18. crimson
    19. silver
    20. rose
    21. azure
    22. lemon
    23. russet
    24. grey
    25. purple
    26. white
    27. pink
    28. orange
    29. blue

Or as an array of strings:

    ["red","yellow","green","brown","scarlet","black","ochre","peach","ruby","olive","violet","fawn","lilac","gold","chocolate","mauve","cream","crimson","silver","rose","azure","lemon","russet","grey","purple","white","pink","orange","blue"]

---
## Rules
- You may take input by any reasonable, convenient means (e.g., an array of strings, a delimited string, individual strings), but please specify your input method in your answer.
- You may do the same for your output.
- The input will only ever contain colours from the above list.
- Your solution should be able to handle empty inputs.
- You may choose whether all words in the input are consistently uppercase, lowercase or title case but your output's casing *must* match your input's.
- This is <span class="badge is-tag">code-golf</span> so lowest byte count in each language wins.
- As always, standard loopholes are forbidden.

---
## Test cases
    Input:  []
    Output: []

    Input:  ["green", "blue", "red", "brown"]
    Output: ["red", "green", "brown", "blue"]

    Input:  ["gold", "grey", "green"]
    Output: ["green", "gold", "grey"]

    Input:  ["ruby","yellow","red","grey"]
    Output: ["red", "yellow", "ruby", "grey"]

    Input:  ["gold", "green", "fawn", "white", "azure", "rose", "black", "purple", "orange", "silver", "ruby", "blue", "lilac", "crimson", "pink", "cream", "lemon", "russet", "grey", "olive", "violet", "mauve", "chocolate", "yellow", "peach", "brown", "ochre", "scarlet", "red"]
    Output: ["red", "yellow", "green", "brown", "scarlet", "black", "ochre", "peach", "ruby", "olive", "violet", "fawn", "lilac", "gold", "chocolate", "mauve", "cream", "crimson", "silver", "rose", "azure", "lemon", "russet", "grey", "purple", "white", "pink", "orange", "blue"]