-
[LeetCode] Spiral Matrix알고리즘 2019. 10. 31. 17:07
문제
Given a matrix of m x n elements (m rows, n columns), return all elements of the matrix in spiral order.
Example 1:
Input: [ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ] ] Output: [1,2,3,6,9,8,7,4,5]
Example 2:
Input: [ [1, 2, 3, 4], [5, 6, 7, 8], [9,10,11,12] ] Output: [1,2,3,4,8,12,11,10,9,5,6,7]
Approach
문제에서 요구하는대로 그대로 구현한다.
matrix 요소를 방문했는지 체크하는 matrix와 같은 크기의 2차원 배열을 하나 만들어서 방문할때마다 기록하고
진행방향의 순서도 정해져있으므로 (우, 하, 좌, 상) 현재 진행방향을 표시하는 변수도 하나 만들어서 구현했다.
시간복잡도는 O(N) (n은 matrix 요소 수)
Code
https://github.com/chi3236/algorithm/blob/master/LeetCode_SpiralMatrix.cpp
'알고리즘' 카테고리의 다른 글
[LeetCode] Merge Intervals (0) 2019.11.02 [LeetCode] Jump Game (0) 2019.11.01 [LeetCode] Maximum Subarray (0) 2019.10.29 [LeetCode] Pow(x, n) (0) 2019.10.29 [LeetCode] Group Anagrams (0) 2019.10.29