ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Ruby] Combinations
    coding for food 2022. 8. 3. 02:00

    Combinations

    Write a method combinations that takes in an array of unique elements, the method should return a 2D array representing all possible combinations of 2 elements of the array.

    def combinations(arr)
    
    end
    
    print combinations(["a", "b", "c"]); # => [ [ "a", "b" ], [ "a", "c" ], [ "b", "c" ] ]
    puts
    
    print combinations([0, 1, 2, 3]); # => [ [ 0, 1 ], [ 0, 2 ], [ 0, 3 ], [ 1, 2 ], [ 1, 3 ], [ 2, 3 ] ]
    puts

    doh solution

    def combinations(arr)
      
      new_arr = []
      
      i = 0
      while i < arr.length
      	j = i+1
        while j < arr.length
        	new_arr << [arr[i].to_s, arr[j].to_s]
        	j += 1
        end
        i += 1
      end
    	return new_arr
    end
    
    print combinations(["a", "b", "c"]); # => [ [ "a", "b" ], [ "a", "c" ], [ "b", "c" ] ]
    puts
    
    print combinations([0, 1, 2, 3]); # => [ [ 0, 1 ], [ 0, 2 ], [ 0, 3 ], [ 1, 2 ], [ 1, 3 ], [ 2, 3 ] ]
    puts

    solution

    def combinations(arr)
      pairs = []
    
      arr.each_with_index do |ele1, idx1|
        arr.each_with_index do |ele2, idx2|
          if idx2 > idx1
            pairs << [ ele1, ele2 ]
          end
        end
      end
    
      return pairs
    end
    
    print combinations(["a", "b", "c"]); # => [ [ "a", "b" ], [ "a", "c" ], [ "b", "c" ] ]
    puts
    
    print combinations([0, 1, 2, 3]); # => [ [ 0, 1 ], [ 0, 2 ], [ 0, 3 ], [ 1, 2 ], [ 1, 3 ], [ 2, 3 ] ]
    puts
Designed by Tistory.