반응형
Notice
Recent Posts
Recent Comments
- Today
- Total
작심삼일
[LeetCode] 59 | Spiral Matrix II | Python 본문
728x90
반응형
문제 링크: https://leetcode.com/problems/spiral-matrix-ii/
문제
Given a positive integer n, generate an n x n matrix filled with elements from 1 to $n^2$ in spiral order.
조건
- 1 <= n <= 20
내 풀이
n이 최대 20까지이므로 recursion을 사용해도 time limit에 걸리지 않을 것이라는 생각에 recursion으로 구현했다.
사람이 이 문제를 푼다면 가장자리부터 1, 2, 3, ... 차례로 써 나갈 것이다.
그 방법을 코드로 구현했다.
코드
class Solution:
def generateMatrix(self, n: int) -> List[List[int]]:
self.M = [[0 for _ in range(n)] for _ in range(n)]
self.edge(0, n, 0, n, 1)
return self.M
def edge(self, sh, eh, sw, ew, n):
for w in range(sw, ew):
self.M[sh][w] = n
n += 1
for h in range(sh+1, eh):
self.M[h][ew-1] = n
n += 1
for w in range(ew-2, sw-1, -1):
self.M[eh-1][w] = n
n += 1
for h in range(eh-2, sh, -1):
self.M[h][sw] = n
n += 1
if sh+1 < eh-1:
self.edge(sh+1, eh-1, sw+1, ew-1, n)
728x90
반응형
'스터디 > 코테' 카테고리의 다른 글
[LeetCode] 669 | Trim a Binary Search Tree | Python (0) | 2022.04.15 |
---|---|
[LeetCode] 700 | Search in an Binary Search Tree | Python (0) | 2022.04.14 |
[LeetCode] 1260 | Shift 2D Grid | Python (0) | 2022.04.11 |
[LeetCode] 703 | Kth Largests Element in a Stream | Python (0) | 2022.04.08 |
[LeetCode] 1046 | Last Stone Weight | Python (0) | 2022.04.07 |
Comments