728x90
1. 문제
https://school.programmers.co.kr/learn/courses/30/lessons/120844
정수가 담긴 배열 numbers와 문자열 direction가 매개변수로 주어집니다. 배열 numbers의 원소를 direction방향으로 한 칸씩 회전시킨 배열을 return하도록 solution 함수를 완성해주세요.
2. 제한사항
3. Python code
from collections import deque as dq
def solution(numbers, direction):
numbers = dq(numbers)
if direction == 'right':
numbers.appendleft(numbers.pop())
else:
numbers.append(numbers.popleft())
return list(numbers)
collections 라이브러리에 있는 deque를 사용했다.
deque를 사용하게 되면 appendleft, popleft등 list에서는 사용할 수 없는 기능 사용이 가능하다.
from collections import deque as dq
def solution(numbers, direction):
numbers = dq(numbers)
if direction == 'right':
numbers.rotate(1)
else:
numbers.rotate(-1)
return list(numbers)
위의 코드도 deque를 사용한 코드지만 문제 그대로 rotate를 사용하면 배열 회전이 가능하다.
deque.rotate(num) 일때 num이 양수면 num만큼 오른쪽으로 회전, num이 음수면 num만큼 왼쪽으로 회전한다.