본문 바로가기
코딩테스트 입문/Python

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

by Peter.JH 2023. 7. 11.
728x90

 

문제:

정수가 담긴 배열 numbers와 문자열 direction가 매개변수로 주어집니다. 배열 numbers의 원소를 direction방향으로 한 칸씩 회전시킨 배열을 return 하도록 solution 함수를 완성해 주세요.

 

 

입력:

정수가 담긴 배열 numbers와 문자열 direction

출력:

배열 numbers의 원소를 direction방향으로 한 칸씩 회전시킨 배열 출력 

 

 

제한사항:

  • 3 ≤ numbers의 길이 ≤ 20
  • direction은 "left"와 "right" 둘 중 하나입니다.
numbers direction result
[1,2,3] "right" [3,1,2]
[4, 455, 6, 4, -1, 45, 6] "left" [455, 6, 4, -1, 45, 6, 4]

 

solution.py:

from collections import deque

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

 

풀이설명: 

배열 회전문제에서는 deque를 사용하면 편리하다.

#참조 https://docs.python.org/3/library/collections.html#collections.deque

 

collections — Container datatypes

Source code: Lib/collections/__init__.py This module implements specialized container datatypes providing alternatives to Python’s general purpose built-in containers, dict, list, set, and tuple.,,...

docs.python.org

 

 

728x90