Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

Problem 840. SET (the card game)

Created by Matt Eicholtz

SET is a card game in which players try to find valid 3-card sets from 12 cards on the table. What makes a valid set? Every card has four features, each with three possible values. In a valid set, each of the features, when looked at individually, are either the same on each card OR different on each card.

In this problem, you are given a 12x4 matrix representing 12 cards (rows) with 4 features (columns) each. The N-th row corresponds to the N-th card. Each feature has a value of 0, 1, or 2. Create a function that returns an Mx3 matrix of all valid sets, where each row is a set and each column is the index to a card in the set. For every set, the cards (columns) should be arranged in ascending order. If there are no valid sets for a given input, return []. You may assume that all cards are unique.

Example

cards = [1 0 1 0
         1 1 1 1
         2 2 1 0
         0 1 2 2
         2 1 1 1
         1 0 1 2
         0 0 0 0
         2 2 2 2
         0 2 0 0
         1 1 1 0
         0 1 0 2
         0 2 0 2];

returns

sets = [2 7 8
        6 8 11]

because there are two valid sets. Cards 2,7, and 8 make one set and cards 6,8, and 11 form another set. Notice that a card can be a part of more than one set.

Problem Group

Solution Statistics

18 correct solutions 7 incorrect solutions
Last solution submitted on Nov 17, 2014

Problem Comments

Solution Comments