알고리즘 공부/LeetCode
[LeetCode] 54. Spiral Matrix (Java)
EVEerNew
2021. 12. 17. 18:37
반응형
문제
https://leetcode.com/problems/spiral-matrix/
Spiral Matrix - LeetCode
Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.
leetcode.com
풀이
난이도: Medium
재귀 형식으로 해결한 문제.
행렬을 나선형 순서로 돌아가기 위해서는 결국에는 외각을 한 바퀴 돌고 한 칸 안쪽에서 다시 한 바퀴 도는 것을 반복하게 된다.
따라서 재귀로 표현하기 적합하다.
한 칸의 외각의 범위를 표현하기 위해서는 단 두가지 점인, 왼쪽 위(left top)와 오른쪽 아래(right bottom)만 알면 된다.
이제 왼쪽 위(left top)와 오른쪽 아래(right bottom)점을 기준으로 외각을 한 바퀴 순회한 순서를 구하는 함수 호출하여 leftTop과 rightBottom을 대각선으로 좁혀주면 모든 칸을 순회할 수 있다.
leftTop의 row가 rightBottom 보다 큰 게 역전된 경우와 leftTop의 column이 rightBottom 보다 크게 역전된 경우 모든 칸을 순회한 것이므로 종료해주면 된다.
코드
반응형