[프로그래머스] Lv 0 배열 회전시키기 - Python

2022. 12. 28. 20:40·Programming/알고리즘
728x90

1. 문제

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

 

프로그래머스

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

programmers.co.kr

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

 

2. 제한사항

 

3. Python code

from collections import deque as dq

def solution(numbers, direction):
    numbers = dq(numbers)
    if direction == 'right':
        numbers.appendleft(numbers.pop())
    else:
        numbers.append(numbers.popleft())
    return list(numbers)

collections 라이브러리에 있는 deque를 사용했다.

deque를 사용하게 되면 appendleft, popleft등 list에서는 사용할 수 없는 기능 사용이 가능하다.

 

from collections import deque as dq

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

위의 코드도 deque를 사용한 코드지만 문제 그대로 rotate를 사용하면 배열 회전이 가능하다.

deque.rotate(num) 일때 num이 양수면 num만큼 오른쪽으로 회전, num이 음수면 num만큼 왼쪽으로 회전한다.

 

저작자표시 비영리 변경금지 (새창열림)
'Programming/알고리즘' 카테고리의 다른 글
  • [프로그래머스] Lv 0 컨트롤 제트 - Python
  • [프로그래머스] Lv 0 문자열 정렬하기 (1) - Python
  • [프로그래머스] Lv 0 팩토리얼 - Python
  • [프로그래머스] Lv 0 2차원으로 만들기 - Python
해치
해치
뭐라도 하자
  • 해치
    hi there
    해치
  • 글쓰기 관리자
  • 전체
    오늘
    어제
    • ALL (66) N
      • Programming (62)
        • Python (14)
        • Linux (0)
        • SQL (13)
        • 알고리즘 (35)
      • Framework (3)
        • Docker (2)
        • Django (1)
      • AWS (0)
      • Dashboard (1) N
  • 블로그 메뉴

    • 링크

    • 인기 글

    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    해치
    [프로그래머스] Lv 0 배열 회전시키기 - Python
    상단으로

    티스토리툴바