Advertisement
Guest User

Untitled

a guest
May 24th, 2019
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 0.92 KB | None | 0 0
  1. enum class Color {
  2.     WHITE, BLACK,YELLOW
  3. }
  4.  
  5. fun getAllVariants(sizeOfArray: Int): List<List<Color>> {
  6.     if (sizeOfArray <= 0) return emptyList()
  7.  
  8.     var list = emptyList<List<Color>>()
  9.     for (i in 0 until sizeOfArray) {
  10.         list = mixWith(list)
  11.     }
  12.     return list
  13. }
  14.  
  15. fun mixWith(variants: List<List<Color>>): List<List<Color>> {
  16.     //variants for size of 1
  17.     if (variants.isEmpty()) {
  18.         val result = mutableListOf<List<Color>>()
  19.         for (color in Color.values()) {
  20.             result.add(listOf(color))
  21.         }
  22.         return result
  23.     }
  24.     return variants
  25.         .flatMap { variant ->
  26.             //making more variants by adding one more color to each list
  27.             val result = mutableListOf<List<Color>>()
  28.             for (color in Color.values()) {
  29.                 result.add(variant + color)
  30.             }
  31.             result
  32.         }
  33. }
  34.  
  35. print(getAllVariants(2))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement