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

Learn moreOpportunities for recent engineering grads.

Apply Today**New to MATLAB?**

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.

18 correct solutions
7 incorrect solutions

Last solution submitted on Nov 17, 2014

1 Comment

Khaled Hamed
on 10 Aug 2012

Almost.....!

1 Comment

Matt Eicholtz
on 19 Jul 2012

trying to do it without a for-loop

1 Comment

Tim
on 18 Jul 2012

Using parts of Solution 115046

1 Comment

Matt Eicholtz
on 18 Jul 2012

Using parts of Solution 114934

1 Comment