Cody

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

Solution 1631835

Submitted on 22 Sep 2018 by Seok Lee
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
assert(isempty(regexp(evalc('type rot_hardway'),'(eval|fliplr|flipud|flipdim|rot90|)')))

2   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))

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

3   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))

n = 3 y = 1 1 1 1 1 1 1 1 1 y = 1.0000 + 0.0000i 1.0000 + 0.0000i 1.0000 + 0.0000i 1.0000 + 0.0000i 1.0000 + 0.0000i 1.0000 + 0.0000i 0.0000 + 1.0000i 4.0000 + 0.0000i 7.0000 + 0.0000i y = 1.0000 + 0.0000i 1.0000 + 0.0000i 1.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 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

4   Pass
x = magic(9); y_correct = rot90(magic(9)); assert(isequal(rot_hardway(x),y_correct))

n = 9 y = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 y = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 47 57 67 77 6 16 26 36 37 y = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 58 68 78 7 17 27 28 38 48 47 57 67 77 6 16 26 36 37 y = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 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 y = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 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 y = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 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 y = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 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 y = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 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 y = 1 1 1 1 1 1 1 1 1 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 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