목차
수열의 회전
정수 수열의 원소를 회전하고 싶습니다.
매개변수 nums에 길이가 n인 수열이 주어지고, 매개변수 k에 뒤로 이동시키고 싶은 원소의 개수가 주어지면
nums의 원소 중 앞 원소 k개를 수열의 뒤쪽으로 이동하고 난 후의 수열을 반환하는 프로그램을 작성하세요.
제한사항:
• nums의 길이 3 <= n <= 200,000
• 배열 nums의 원소는 정수입니다. -10,000 <= nums[i] <= 10,000 • 0 <= k <= nums의 길이
나의코드
from collections import deque
def solution(nums, k):
answer = []
dq=deque(nums)
for _ in range(k):
dq.append(dq.popleft())
answer=list(dq)
return 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))
덱을 사용하여 로직 작성
정답코드
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))
'코딩테스트[파이썬] > 입문자를 위한 코딩테스트 핵심' 카테고리의 다른 글
[배열과 연결리스트와 덱] -두수의 합- (0) | 2024.01.22 |
---|---|
[배열과 연결리스트와 덱] - 중복제거- (0) | 2024.01.22 |
[배열과 연결리스트와 덱] -연속된 1의 길이 (0) | 2024.01.22 |
[배열과 연결리스트와 덱] -합격생 (0) | 2024.01.22 |
[배열과 연결리스트와 덱]-최솟값의 위치 (0) | 2024.01.22 |