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)를 추가하거나 제거할 수 있음
'프로그래밍 > 알고리즘' 카테고리의 다른 글
프로그래머스 - 중복된 문자 제거 파이썬 (0) | 2022.11.14 |
---|---|
프로그래머스 - 최댓값 만들기(1) 파이썬 (0) | 2022.11.11 |
프로그래머스 - 개미 군단 (0) | 2022.11.09 |
프로그래머스 120836 파이썬 - 순서쌍의 개수 (0) | 2022.11.08 |
프로그래머스 120830 - 양꼬치 (1) | 2022.11.07 |
댓글