LeetCode-48
Rotate Image : You are given an n x n 2D matrix representing an image, rotate the image by 90 degrees (clockwise).
note : You have to rotate the image in-place, which means you have to modify the input 2D matrix directly. DO NOT allocate another 2D matrix and do the rotation.
Answer
:::python
class Solution:
def rotate(self, matrix: List[List[int]]) -> None:
if len(matrix[0])==1:
return None
max_length = len(matrix[0])
matrix = collections.deque(matrix)
for i in range(max_length):
for j in range(max_length):
matrix[j].append(matrix[max_length-i-1].pop(0))
Result : 43ms Memory: 16.3mb
๋ฌธ์
์ฃผ์ด์ง 2D ๋ฐฐ์ด์ 90๋ ํ์ ์ํค๋ ๋ฌธ์ ์ ๋๋ค.
์์
์์ ์ ๋ ฅ ๋ฐฐ์ด:
[
[1,2,3],
[4,5,6],
[7,8,9]
]
์์ ์ถ๋ ฅ ๋ฐฐ์ด:
[
[7,4,1],
[8,5,2],
[9,6,3]
]
์ ๊ทผ ๋ฐฉ๋ฒ
์ด ๋ฌธ์ ๋ฅผ ํ๊ธฐ ์ํด์๋ ์ด์ฐจ์ ๋ฐฐ์ด์์ ํ๊ณผ ์ด์ ์์น๋ฅผ ๋ฐ๊พธ๋ ๊ฒ์ด ํ์ํฉ๋๋ค. ์ด๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด์๋ ๋ค์๊ณผ ๊ฐ์ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
ํ๊ณผ ์ด ๋ฐ๊พธ๊ธฐ
์ฐ์ ํ๊ณผ ์ด์ ์์น๋ฅผ ๋ฐ๊ฟ๋ณด๊ฒ ์ต๋๋ค. ์์ ๋ฐฐ์ด์ ๋ฐ๊พธ๋ฉด ๋ค์๊ณผ ๊ฐ์ ๋ชจ์์ ๊ฐ์ง๊ฒ ๋ฉ๋๋ค.
[
[1,4,7],
[2,5,8],
[3,6,9]
]
์ด์ ๊ฐ ํ์ ๋ค์ง์ผ๋ฉด ํ์ ๋ ๋ฐฐ์ด์ด ์์ฑ๋ฉ๋๋ค.
๋๊ฐ์ ๊ธฐ์ค ๋ฐ๊พธ๊ธฐ
๋๊ฐ์ ์ ๋ํด ๋์นญ์ ๋ง๋ค์ด ๋ณด๊ฒ ์ต๋๋ค.
์์ ๋ฐฐ์ด์ ๋๊ฐ์ ์ผ๋ก ๋ค์ง์ผ๋ฉด ๋ค์๊ณผ ๊ฐ์ ๋ชจ์์ ๊ฐ์ง๊ฒ ๋ฉ๋๋ค.
[
[1,4,7],
[2,5,8],
[3,6,9]
]
์ด์ ๊ฐ ํํ๋ ๋ ๋ค ๊ฐ์ ๋ชจ์์ ๋๋ค. ์ด ์ค์์ ๊ฐ ํ์ ๋ค์ง์ด์ฃผ๋ฉด ํ์ ๋ ๋ฐฐ์ด์ด ์์ฑ๋ฉ๋๋ค.
์๊ฐ ๋ณต์ก๋
์ด ๋ฌธ์ ์ ์๊ฐ ๋ณต์ก๋๋ O(n^2)์ ๋๋ค. ์ด๋ ์ฃผ์ด์ง ๋ฐฐ์ด์ ๋ชจ๋ ์์๋ฅผ ํ ๋ฒ์ฉ๋ง ๋ฐฉ๋ฌธํด์ ์ฒ๋ฆฌํ๊ฒ ๋๊ธฐ ๋๋ฌธ์ ๋๋ค.
'๐ข One step' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[leetcode-706] Design HashMap (0) | 2023.05.09 |
---|---|
[leetcode-38] Count and Say (0) | 2023.05.05 |
[leetcode-347] Top K Frequent Elements (0) | 2023.04.27 |
[leetcode-43] Multiply Strings (0) | 2023.04.26 |
[leetcode-14] Longest Common Prefix (0) | 2023.04.24 |