Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- enum class Color {
- WHITE, BLACK,YELLOW
- }
- fun getAllVariants(sizeOfArray: Int): List<List<Color>> {
- if (sizeOfArray <= 0) return emptyList()
- var list = emptyList<List<Color>>()
- for (i in 0 until sizeOfArray) {
- list = mixWith(list)
- }
- return list
- }
- fun mixWith(variants: List<List<Color>>): List<List<Color>> {
- //variants for size of 1
- if (variants.isEmpty()) {
- val result = mutableListOf<List<Color>>()
- for (color in Color.values()) {
- result.add(listOf(color))
- }
- return result
- }
- return variants
- .flatMap { variant ->
- //making more variants by adding one more color to each list
- val result = mutableListOf<List<Color>>()
- for (color in Color.values()) {
- result.add(variant + color)
- }
- result
- }
- }
- print(getAllVariants(2))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement