정수가 담긴 배열 numbers와 문자열 direction가 매개변수로 주어집니다. 배열 numbers의 원소를 direction방향으로 한 칸씩 회전시킨 배열을 return하도록 solution 함수를 완성해주세요.
제한사항
3<= numbers의 길이 <= 20
direction은 "left"와 "right" 둘 중 하나입니다.
문제 설명
[1,2,3] 이 주어지고 "right"가 주어지면 [3,1,2]이다.
[1,2,3]이 주어지고 "left"가 주어지면 [2,3,1]이다.
방법 1
from collections import deque
def solution(numbers, direction):
num = deque(numbers)
k=1
if direction == 'right':
num.rotate(k)
else:
num.rotate(-k)
return list(num)
방법 2
def solution(numbers, direction):
answer = 0
k=1
if direction == "right":
answer = numbers[-k:] + numbers[:len(numbers)-k]
else:
answer = numbers[k:] + numbers[:k]
return answer
if __name__ == '__main__':
numbers = [1,2,3,4,5]
direction = 'left'
print(solution(numbers, direction))
방법 3
def solution(numbers, direction):
if not numbers:
return numbers
k=1
N = len(numbers)
k = k%N
if k==0:
return numbers
new_arr=[0]*N
if direction =='right':
for i in range(N):
new_arr[(i+k)%N]=numbers[i]
else:
for i in range(N):
new_arr[(i-k)%N]=numbers[i]
return new_arr