title: How do you rotate a two dimensional array?
body: <p>Inspired by <a href="https://devblogs.microsoft.com/oldnewthing/20080902-00/?p=21003" rel="noreferrer">Raymond Chen's post</a>, say you have a 4x4 two dimensional array, write a function that rotates it 90 degrees. Raymond links to a solution in pseudo code, but I'd like to see some real world stuff.</p>
  
  <pre><code>[1][2][3][4]
  [5][6][7][8]
  [9][0][1][2]
  [3][4][5][6]
  </code></pre>
  
  <p>Becomes:</p>
  
  <pre><code>[3][9][5][1]
  [4][0][6][2]
  [5][1][7][3]
  [6][2][8][4]
  </code></pre>
  
  <p><strong>Update</strong>: Nick's answer is the most straightforward, but is there a way to do it better than n^2? What if the matrix was 10000x10000?</p>