파이썬 알고리즘 문제 풀이

[프로그래머스] 배열 회전시키기

gogi masidda 2023. 11. 20. 12:30
  • 배열 회전시키기
  • 정수가 담긴 배열 numbers와 문자열 direction가 매개변수로 주어집니다. 배열 numbers의 원소를 direction방향으로 한 칸씩 회전시킨 배열을 return하도록 solution 함수를 완성해주세요.
  • numbersdirectionresult
  • [1, 2, 3] "right" [3, 1, 2]
    [4, 455, 6, 4, -1, 45, 6] "left" [455, 6, 4, -1, 45, 6, 4]
def solution(numbers, direction):
    answer = [0] * len(numbers)
    if(direction == 'left'):
        temp = numbers[0]
        for i in range(1, len(numbers)):
            answer[i-1] = numbers[i]
        answer[len(numbers)-1] = temp
    else:
        temp = numbers[len(numbers)-1]
        for i in range(0, len(numbers)-1):
            answer[i+1] = numbers[i]
        answer[0] = temp
    return answer

 

다른 사람 풀이

from collections import deque

def solution(numbers, direction):
    numbers = deque(numbers)
    if direction == 'right':
        numbers.rotate(1)
    else:
        numbers.rotate(-1)
    return list(numbers)

rotate함수가 있구나... 

rotate(1)은 오른쪽으로 이동, rotate(-1)은 왼쪽으로 이동

 

def solution(numbers, direction):
    return [numbers[-1]] + numbers[:-1] if direction == 'right' else numbers[1:] + [numbers[0]]

 

깔끔한 풀이..

728x90