https://leetcode.com/problems/spiral-matrix-ii/
문제 분석
n의 값이 주어지는 n*n matrix에서 Sprial 순서대로 탐색을 했을 경우의 matrix를 만드는 문제입니다.
처음 시도한 답안
class Solution:
def generateMatrix(self, n: int) -> List[List[int]]:
row_begin = 0
col_begin = 0
row_end = n-1
col_end = n-1
answer = [[0] * n for _ in range(n)]
count = 1
while row_begin <= row_end and col_begin <= col_end:
for i in range(col_begin, col_end+1):
answer[row_begin][i] = count
count += 1
row_begin += 1
for i in range(row_begin, row_end+1):
answer[i][col_end] = count
count += 1
col_end -= 1
if row_begin <= row_end:
for i in range(col_end, col_begin-1, -1):
answer[row_end][i] = count
count += 1
row_end -= 1
if col_begin <= col_end:
for i in range(row_end, row_begin-1, -1):
answer[i][col_begin] = count
count += 1
col_begin += 1
return answer
접근 방법
- 이 문제의 경우 지난 Spiral Matrix 문제와 매우 유사합니다.
- 먼저 주어진 n을 가지고 n*n matrix를 만들어 줍니다.
- Spiral 탐색을 하면서 count를 매번 증가시키고, 그 값을 answer matrix에 계속 기록합니다.
- matrix를 복구할 수 있습니다.
지난번에 풀이를 올렸던 해당 문제와 매우 유사합니다. 다만, count를 증가시키면서 값을 기록했습니다.
https://leffept.tistory.com/494
728x90
'SW개발 > 코딩테스트' 카테고리의 다른 글
[LeetCode]Minimum Path Sum (0) | 2023.05.25 |
---|---|
[LeetCode]Jump Game (0) | 2023.05.24 |
[LeetCode]Spiral Matrix (0) | 2023.05.22 |
[LeetCode]Maximum Subarray (0) | 2023.05.21 |
[LeetCode]Group Anagrams (0) | 2023.05.10 |