[프로그래머스 Lv.0] 배열

문제

https://school.programmers.co.kr/learn/courses/30/lessons/120844

프로그램 제작자

코드 중심 개발자를 고용하십시오. 배치 기반 위치 매칭. 프로그래머의 개발자별 프로필에 가입하고 기술 호환성이 좋은 회사와 연결하십시오.

Programmer.co.kr

내 솔루션

from collections import deque

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

문제를 보자마자 큐가 생각나서 관련 라이브러리가 있을 것 같아서 찾아봤습니다.

deque(양단 대기열)

양쪽에 입력이 있는 대기열 개체이며 스택이나 대기열처럼 사용할 수 있습니다.

스택처럼 쓰기 위한 append(), pop()

큐처럼 사용하려면 append(), pop(), appendleft() 및 popleft()를 사용할 수 있습니다.

또한 문제를 해결하는 데 사용되는 rotation()을 포함하여 extend(), insert(), remove() 및 reverse()와 같은 메서드를 사용할 수 있습니다.

deque를 사용하면 deque 타입으로 변환되기 때문에 결국 리스트로 변환된다.

https://docs.python.org/en/3/library/collections.html?highlight=deque#deque-objects

컬렉션 — 컨테이너 데이터 유형

소스 코드: Lib/collections/__init__.py 이 모듈은 Python의 범용 내장 컨테이너, dict, list, set 및 tuple에 대한 대안을 제공하는 특수 컨테이너 데이터 유형을 구현합니다.,,…

docs.python.org

다른 사람의 솔루션

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

이 코드는 더 간단하지만 아직 배우는 중이므로 새 라이브러리를 알아가는 데 더 집중하겠습니다!