Cody

# Problem 798. Rotate input square matrix 90 degrees CCW without rot90

Solution 927200

Submitted on 25 Jul 2016 by Stephanie O'Neil
This solution is locked. To view this solution, you need to provide a solution of the same size or smaller.

### Test Suite

Test Status Code Input and Output
1   Pass
x = [1 2 3;4 5 6;7 8 9]; y_correct = [3 6 9;2 5 8;1 4 7]; assert( isequal(rot_hardway(x),y_correct) && isempty(regexp(evalc('type rot_hardway'),'(eval|fliplr|flipud|flipdim|rot90|)')) )

y = 0 0 0 0 0 0 0 0 0 y = 3 0 0 2 0 0 1 0 0 y = 3 6 0 2 5 0 1 4 0 y = 3 6 9 2 5 8 1 4 7

2   Pass
x = [sqrt(-1) 2 3;4 5 6;7 8 9]; y_correct = [3 6 9;2 5 8;sqrt(-1) 4 7]; assert( isequal(rot_hardway(x),y_correct) && isempty(regexp(evalc('type rot_hardway'),'(eval|fliplr|flipud|flipdim|rot90|)')) )

y = 0 0 0 0 0 0 0 0 0 y = 3.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 2.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 1.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i y = 3.0000 + 0.0000i 6.0000 + 0.0000i 0.0000 + 0.0000i 2.0000 + 0.0000i 5.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 1.0000i 4.0000 + 0.0000i 0.0000 + 0.0000i y = 3.0000 + 0.0000i 6.0000 + 0.0000i 9.0000 + 0.0000i 2.0000 + 0.0000i 5.0000 + 0.0000i 8.0000 + 0.0000i 0.0000 + 1.0000i 4.0000 + 0.0000i 7.0000 + 0.0000i

3   Pass
x = magic(9); y_correct = rot90(magic(9)); assert( isequal(rot_hardway(x),y_correct) && isempty(regexp(evalc('type rot_hardway'),'(eval|fliplr|flipud|flipdim|rot90|)')) )

y = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 y = 45 0 0 0 0 0 0 0 0 34 0 0 0 0 0 0 0 0 23 0 0 0 0 0 0 0 0 12 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 80 0 0 0 0 0 0 0 0 69 0 0 0 0 0 0 0 0 58 0 0 0 0 0 0 0 0 47 0 0 0 0 0 0 0 0 y = 45 46 0 0 0 0 0 0 0 34 44 0 0 0 0 0 0 0 23 33 0 0 0 0 0 0 0 12 22 0 0 0 0 0 0 0 1 11 0 0 0 0 0 0 0 80 9 0 0 0 0 0 0 0 69 79 0 0 0 0 0 0 0 58 68 0 0 0 0 0 0 0 47 57 0 0 0 0 0 0 0 y = 45 46 56 0 0 0 0 0 0 34 44 54 0 0 0 0 0 0 23 33 43 0 0 0 0 0 0 12 22 32 0 0 0 0 0 0 1 11 21 0 0 0 0 0 0 80 9 10 0 0 0 0 0 0 69 79 8 0 0 0 0 0 0 58 68 78 0 0 0 0 0 0 47 57 67 0 0 0 0 0 0 y = 45 46 56 66 0 0 0 0 0 34 44 54 55 0 0 0 0 0 23 33 43 53 0 0 0 0 0 12 22 32 42 0 0 0 0 0 1 11 21 31 0 0 0 0 0 80 9 10 20 0 0 0 0 0 69 79 8 18 0 0 0 0 0 58 68 78 7 0 0 0 0 0 47 57 67 77 0 0 0 0 0 y = 45 46 56 66 76 0 0 0 0 34 44 54 55 65 0 0 0 0 23 33 43 53 63 0 0 0 0 12 22 32 42 52 0 0 0 0 1 11 21 31 41 0 0 0 0 80 9 10 20 30 0 0 0 0 69 79 8 18 19 0 0 0 0 58 68 78 7 17 0 0 0 0 47 57 67 77 6 0 0 0 0 y = 45 46 56 66 76 5 0 0 0 34 44 54 55 65 75 0 0 0 23 33 43 53 63 64 0 0 0 12 22 32 42 52 62 0 0 0 1 11 21 31 41 51 0 0 0 80 9 10 20 30 40 0 0 0 69 79 8 18 19 29 0 0 0 58 68 78 7 17 27 0 0 0 47 57 67 77 6 16 0 0 0 y = 45 46 56 66 76 5 15 0 0 34 44 54 55 65 75 4 0 0 23 33 43 53 63 64 74 0 0 12 22 32 42 52 62 72 0 0 1 11 21 31 41 51 61 0 0 80 9 10 20 30 40 50 0 0 69 79 8 18 19 29 39 0 0 58 68 78 7 17 27 28 0 0 47 57 67 77 6 16 26 0 0 y = 45 46 56 66 76 5 15 25 0 34 44 54 55 65 75 4 14 0 23 33 43 53 63 64 74 3 0 12 22 32 42 52 62 72 73 0 1 11 21 31 41 51 61 71 0 80 9 10 20 30 40 50 60 0 69 79 8 18 19 29 39 49 0 58 68 78 7 17 27 28 38 0 47 57 67 77 6 16 26 36 0 y = 45 46 56 66 76 5 15 25 35 34 44 54 55 65 75 4 14 24 23 33 43 53 63 64 74 3 13 12 22 32 42 52 62 72 73 2 1 11 21 31 41 51 61 71 81 80 9 10 20 30 40 50 60 70 69 79 8 18 19 29 39 49 59 58 68 78 7 17 27 28 38 48 47 57 67 77 6 16 26 36 37