본문 바로가기
프로그래밍/알고리즘

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

by monicada 2022. 11. 10.
728x90

오늘 문제 풀기 전 랭킹 / 푼 후 랭킹 

 

문제 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

해결 코드 

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

- 전체 범위를 잡고 

- 방향(left, right)에 따라 if문을 작성 

- (코드 기준으로)right방향이 아니면 left로 코드를 진행 

#데크(deque)는 import해 사용함
from collections import deque

def solution(numbers, direction):
    numbers = deque(numbers)
    if direction == "right": direction = 1
    if direction == "left": direction = -1
    #데크를 direction만큼 회전한다(양수면 오른쪽, 음수면 왼쪽)
    numbers.rotate(direction)
    return list(numbers)

- 보통 큐(queue)는 선입선출(FIFO) 방식으로 작동

- 양방향 큐 = 데크(deque)

- 데크는 앞, 뒤 양쪽 방향에서 엘리먼트(element)를 추가하거나 제거할 수 있음

댓글