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

Solution 134093

Submitted on 4 Sep 2012 by Fumiaki

Correct

276Size
Leading solution size is 20.
This solution is locked. To view this solution, you need to provide a solution of the same size or smaller.

Test Suite

Test
Code Input and Output
1
Pass
 
deck = [1 4 7 10 13 16 19 22 25 28 3 6 9 12 15 18 21 24 27 2 5 8 11 14 17 20 23 26];
n    = 10;
out = [8    26     1     4     7    23     8     8     4    24];
assert(isequal(solitaire(deck, n),out))
deck =
  Columns 1 through 16
     1     4     7    10    13    16    19    22    25    28     3     6     9    12    15    18
  Columns 17 through 28
    21    24     2    27     5     8    11    14    17    20    23    26
mnmx =
    20    12
idx =
     6
deck =
  Columns 1 through 16
    23    26    28     9    12    15    18    21    24     2     1    27     4     7    10    13
  Columns 17 through 28
    16    19    22    25     3     5     8    11    14    17    20     6
mnmx =
    12     5
idx =
    12
deck =
  Columns 1 through 16
    14    17    20     6    28    15    18    21    24     2     1    23    27    26     9     4
  Columns 17 through 28
     7    10    13    16    19    22    25     3     5     8    11    12
mnmx =
    13     7
idx =
    18
deck =
  Columns 1 through 16
     2     1    23    14    27    17    20     6    15    26     9     4     7    10    13    16
  Columns 17 through 28
    19    22    25     3     5     8    11    12    28    21    24    18
mnmx =
     5    27
idx =
    14
deck =
  Columns 1 through 16
    22    25     3     5     8    11    12    21    24    28     2     1    23    18    17    27
  Columns 17 through 28
    20     6    15    26     9     4     7    10    13    16    19    14
mnmx =
    16    12
idx =
     1
deck =
  Columns 1 through 16
     6    15    26     9     4     7    10    13    16    19    14    28    23    18    17    22
  Columns 17 through 28
    27    25     3     5     8    11    12    21    24     2    20     1
mnmx =
    17    14
idx =
    18
deck =
  Columns 1 through 16
     9     4     7    10    13    16    19    14    23    25     3     5     8    11    12    21
  Columns 17 through 28
    24     2    20     1    28    17    22     6    27    15    26    18
mnmx =
    25    23
idx =
    22
deck =
  Columns 1 through 16
    24     2    20     1    17    15    26    18    28     6     9    27     4     7    10    13
  Columns 17 through 28
    16    19    14    23    25     3     5     8    11    12    21    22
mnmx =
    12    11
idx =
     9
deck =
  Columns 1 through 16
     3     5     8    11    12    21    22    28    24    27     2    20     1    17    15    26
  Columns 17 through 28
    18     6     4     7    10    13    16    19    14    23    25     9
mnmx =
     9    10
idx =
    24
deck =
  Columns 1 through 16
    12    21    22     2    20     1    17    15    26    18     6     4     7    10    13    16
  Columns 17 through 28
    19    14    23    25     9    28    27     3     5     8    11    24
mnmx =
    22    24
idx =
     9
2
Pass
 
%%
deck = 1:28;
n    = 10;
out = [3    22     9     4    23     7    25    16    14    14];
assert(isequal(solitaire(deck, n),out))
deck =
  Columns 1 through 16
     1     2     3     4     5     6     7     8     9    10    11    12    13    14    15    16
  Columns 17 through 28
    17    18    19    20    21    22    23    24    25    26    28    27
mnmx =
    28     2
idx =
     1
deck =
  Columns 1 through 16
     2     3     4     5     6     7     8     9    10    11    12    13    14    15    16    17
  Columns 17 through 28
    18    19    20    21    22    23    24    25    26    28    27     1
mnmx =
    26    28
idx =
    26
deck =
  Columns 1 through 16
    25     1    27    28     2     3     4     5     6     7     8     9    10    11    12    13
  Columns 17 through 28
    14    15    16    17    18    19    20    21    22    23    24    26
mnmx =
     3     6
idx =
     1
deck =
  Columns 1 through 16
     5     6     7     8     9    10    11    12    13    14    15    16    17    18    19    20
  Columns 17 through 28
    21    22    23    24    26     2    27     3    28    25     4     1
mnmx =
    23    27
idx =
     2
deck =
  Columns 1 through 16
     3    25     4    28     5     6     7     8     9    10    11    12    13    14    15    16
  Columns 17 through 28
    17    18    19    20    21    22    23    24    26     1     2    27
mnmx =
    28     6
idx =
     6
deck =
  Columns 1 through 16
    12    13    14    15    16    17    18    19    20    21    22    23    24    26     1     2
  Columns 17 through 28
     3    27    25     4     5    28     7     8     9    10    11     6
mnmx =
    18    24
idx =
     3
deck =
  Columns 1 through 16
     6    25    27     4     5     7     8    28    12    13    14    15    16    17    18    19
  Columns 17 through 28
    20    21    22    23    24    26     1     2     9    10    11     3
mnmx =
     3    10
idx =
    25
deck =
  Columns 1 through 16
    28     6    14    15    16    17    18    19    20    21    22    23    24    26     1     2
  Columns 17 through 28
     9    10    11     3     4    27     5     7     8    12    13    25
mnmx =
    22     3
idx =
    14
deck =
  Columns 1 through 16
    22    23    24    26     1     2     9    10    11     3     4     6    27     5     7     8
  Columns 17 through 28
    12    13    25    28    15    16    17    18    19    20    21    14
mnmx =
    13    22
idx =
     6
deck =
  Columns 1 through 16
     5    27     7     8    12    13    25    15    16    28    22    23    24    26     1     2
  Columns 17 through 28
     9    10    11     3     4    17    18    19    20    21    14     6
mnmx =
     2    12
idx =
     5
3
Pass
 
%%
deck = 1:28;
n    = 9;
out = [3    22     9     4    23     7    25    16    14];
assert(isequal(solitaire(deck, n),out))
deck =
  Columns 1 through 16
     1     2     3     4     5     6     7     8     9    10    11    12    13    14    15    16
  Columns 17 through 28
    17    18    19    20    21    22    23    24    25    26    28    27
mnmx =
    28     2
idx =
     1
deck =
  Columns 1 through 16
     2     3     4     5     6     7     8     9    10    11    12    13    14    15    16    17
  Columns 17 through 28
    18    19    20    21    22    23    24    25    26    28    27     1
mnmx =
    26    28
idx =
    26
deck =
  Columns 1 through 16
    25     1    27    28     2     3     4     5     6     7     8     9    10    11    12    13
  Columns 17 through 28
    14    15    16    17    18    19    20    21    22    23    24    26
mnmx =
     3     6
idx =
     1
deck =
  Columns 1 through 16
     5     6     7     8     9    10    11    12    13    14    15    16    17    18    19    20
  Columns 17 through 28
    21    22    23    24    26     2    27     3    28    25     4     1
mnmx =
    23    27
idx =
     2
deck =
  Columns 1 through 16
     3    25     4    28     5     6     7     8     9    10    11    12    13    14    15    16
  Columns 17 through 28
    17    18    19    20    21    22    23    24    26     1     2    27
mnmx =
    28     6
idx =
     6
deck =
  Columns 1 through 16
    12    13    14    15    16    17    18    19    20    21    22    23    24    26     1     2
  Columns 17 through 28
     3    27    25     4     5    28     7     8     9    10    11     6
mnmx =
    18    24
idx =
     3
deck =
  Columns 1 through 16
     6    25    27     4     5     7     8    28    12    13    14    15    16    17    18    19
  Columns 17 through 28
    20    21    22    23    24    26     1     2     9    10    11     3
mnmx =
     3    10
idx =
    25
deck =
  Columns 1 through 16
    28     6    14    15    16    17    18    19    20    21    22    23    24    26     1     2
  Columns 17 through 28
     9    10    11     3     4    27     5     7     8    12    13    25
mnmx =
    22     3
idx =
    14
deck =
  Columns 1 through 16
    22    23    24    26     1     2     9    10    11     3     4     6    27     5     7     8
  Columns 17 through 28
    12    13    25    28    15    16    17    18    19    20    21    14
mnmx =
    13    22
idx =
     6