[Python ์ฝํ ์ ๋ฌธ] 2. (๋ฌธ์ 4๋ฒ) ์์ด์ ํ์
by Hi.Claire๐ฅ๏ธ ์ ๋ฌธ์๋ฅผ ์ํ ์ฝ๋ฉํ ์คํธ ํต์ฌ - Python (๊นํ์, ์ธํ๋ฐ)
์น์ 2. ๋ฐฐ์ด, ์ฐ๊ฒฐ๋ฆฌ์คํธ, deque
(๋ฌธ์ 4๋ฒ) ์์ด์ ํ์
์ ์ ์์ด์ ์์๋ฅผ ํ์ ํ๊ณ ์ถ์ต๋๋ค.
๋งค๊ฐ๋ณ์ nums์ ๊ธธ์ด๊ฐ n์ธ ์์ด์ด ์ฃผ์ด์ง๊ณ , ๋งค๊ฐ๋ณ์ k์ ๋ค๋ก ์ด๋์ํค๊ณ ์ถ์ ์์์ ๊ฐ์๊ฐ ์ฃผ์ด์ง๋ฉด nums์ ์์ ์ค ์ ์์ k๊ฐ๋ฅผ ์์ด์ ๋ค์ชฝ์ผ๋ก ์ด๋ํ๊ณ ๋ ํ์ ์์ด์ ๋ฐํํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์ธ์.
์ ์ถ๋ ฅ ์
nums | k | answer |
[3, 7, 1, 5, 9, 2, 8] | 3 | [5, 9, 2, 8, 3, 7, 1] |
[2, 12, 2, 1, 3, 3, 9] | 2 | [2, 1, 3, 3, 9, 2, 12] |
[1, 2, 5, 4, 6, 7, 9] | 6 | [9, 1, 2, 5, 4, 6, 7] |
[1, 3, 6, 8, 14, 2, 1, 7] | 5 | [2, 1, 7, 1, 3, 6, 8, 14] |
์ ํ์ฌํญ
- nums์ ๊ธธ์ด : 3 <= n <= 200,000
- ๋ฐฐ์ด nums์ ์์๋ ์ ์์ ๋๋ค. -10,000 <= nums[i] <= 10,000
- 0 <= k <= nums์ ๊ธธ์ด
ํ์ด
def rotateSequence(nums, k):
answer = nums[k:] + nums[0:k]
return answer;
print(rotateSequence([3, 7, 1, 5, 9, 2, 8], 3));
print(rotateSequence([2, 12, 2, 1, 3, 3, 9], 2));
print(rotateSequence([1, 2, 5, 4, 6, 7, 9], 6));
print(rotateSequence([1, 3, 6, 8, 14, 2, 1, 7], 5));
[5, 9, 2, 8, 3, 7, 1]
[2, 1, 3, 3, 9, 2, 12]
[9, 1, 2, 5, 4, 6, 7]
[2, 1, 7, 1, 3, 6, 8, 14]
์ ๋ต ํ์ด
๋ถ์
1. ์ฒซ ๋ฒ์งธ ์ ํ์ฌํญ์์ ์ต๋ ์ ๋ ฅํฌ๊ธฐ๊ฐ 20๋ง์ด๋ฏ๋ก ์๊ฐ๋ณต์ก๋๋ฅผ ์๊ฐํ๋ฉฐ ๋ฌธ์ ๋ฅผ ํ์ด์ผ ํ๋ค.
2. ๋ฐฐ์ด(Python์์๋ list)์ ๋งจ ์์์๋ถํฐ ์์๋ฅผ pop()ํด์ ๋ฐฐ์ด์ ๋งจ ๋ค์ ์์๋ฅผ append()ํ๋ฉด ๋ ๊ฒ ๊ฐ๋ค.
: ๋ฐฐ์ด์ ๊ฐ์ ์ฝ์ ํ๊ฑฐ๋ ์ญ์ ํ ๋ ์๊ฐ๋ณต์ก๋๋ O(n)์ด๋ค.
3. ๋ฐฐ์ด์ ์ฐ๊ฒฐ๋ฆฌ์คํธ(Python์์๋ deque)๋ก ๋ฐ๊ฟ์ ๋งจ ์์์๋ถํฐ ์์๋ฅผ popleft()ํด์ ๋งจ ์ค๋ฅธ์ชฝ์ผ๋ก append()ํด๋ณด์.
: deque์ ๊ฐ์ ์ฝ์ ํ๊ฑฐ๋ ์ญ์ ํ ๋ ์๊ฐ๋ณต์ก๋๋ O(1)์ด๋ค.
๋ฐ๋ผ์ deque๋ก ๋ฐ๊ฟ ํ๊ณ ๋ค์ list๋ก ๋ฐ๊ฟ์ ๋ฐํํ๋ฉด ๋๋ค.
ํ์ด
from collections import deque
def solution(nums, k):
answer = deque(nums)
for i in range(k):
answer.append(answer.popleft())
return list(answer);
print(solution([3, 7, 1, 5, 9, 2, 8], 3));
print(solution([2, 12, 2, 1, 3, 3, 9], 2));
print(solution([1, 2, 5, 4, 6, 7, 9], 6));
print(solution([1, 3, 6, 8, 14, 2, 1, 7], 5));
[5, 9, 2, 8, 3, 7, 1]
[2, 1, 3, 3, 9, 2, 12]
[9, 1, 2, 5, 4, 6, 7]
[2, 1, 7, 1, 3, 6, 8, 14]
'๐ ์ฝ๋ฉํ ์คํธ > ์ ๋ฌธ์๋ฅผ ์ํ ์ฝ๋ฉํ ์คํธ ํต์ฌ - Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Python ์ฝํ ์ ๋ฌธ] 2. (๋ฌธ์ 6๋ฒ) ๋ ์์ ํฉ (0) | 2024.06.01 |
---|---|
[Python ์ฝํ ์ ๋ฌธ] 2. (๋ฌธ์ 5๋ฒ) ์ค๋ณต ์ ๊ฑฐ (0) | 2024.05.29 |
[Python ์ฝํ ์ ๋ฌธ] 2. (๋ฌธ์ 3๋ฒ) ์ฐ์๋ '1'์ ๊ธธ์ด (0) | 2024.05.18 |
[Python ์ฝํ ์ ๋ฌธ] 2. (๋ฌธ์ 2๋ฒ) ํฉ๊ฒฉ์ (0) | 2024.05.16 |
[Python ์ฝํ ์ ๋ฌธ] 2. (๋ฌธ์ 1๋ฒ) ์ต์๊ฐ์ ์์น (0) | 2024.05.15 |
๋ธ๋ก๊ทธ์ ์ ๋ณด
Claire's Study Note
Hi.Claire