Tiny Finger Point Hand With Heart
본문 바로가기
알고리즘문제풀이/프로그래머스

[프로그래머스/파이썬][level 0] 배열 회전시키기 - 120844

by yoondii 2022. 12. 25.
728x90
반응형

[level 0] 배열 회전시키기 - 120844

문제 링크

성능 요약

메모리: 10.1 MB, 시간: 0.00 ms

구분

코딩테스트 연습 > 코딩테스트 입문

채점결과


정확성: 100.0
합계: 100.0 / 100.0

문제 설명

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


제한사항

  • 3 ≤ numbers의 길이 ≤ 20
  • direction은 "left" 와 "right" 둘 중 하나입니다.

입출력 예

numbersdirectionresult

[1, 2, 3] "right" [3, 1, 2]
[4, 455, 6, 4, -1, 45, 6] "left" [455, 6, 4, -1, 45, 6, 4]

입출력 예 설명

입출력 예 #1

  • numbers 가 [1, 2, 3]이고 direction이 "right" 이므로 오른쪽으로 한 칸씩 회전시킨 [3, 1, 2]를 return합니다.

입출력 예 #2

  • numbers 가 [4, 455, 6, 4, -1, 45, 6]이고 direction이 "left" 이므로 왼쪽으로 한 칸씩 회전시킨 [455, 6, 4, -1, 45, 6, 4]를 return합니다.

출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges

 

나의 풀이

from collections import deque
def solution(numbers, direction):
    answer = []
    q = deque(numbers)
    if direction ==  'right':
        q.rotate(1)
    else:
        q.rotate(-1)
    for i in q:
        answer.append(i)

    return answer

어떻게 회전을 시킬까 인덱스로만 생각을 하다가 알게된 rotate함수

 

>deque.rotate() 를 사용해서 리스트 회전하기

리스트 자료형을 deque자료형으로 바꾼후 rotate()함수를 이용하면 된다.

함수안에 음수를 넣게 된다면 왼쪽회전 양수는 오른쪽회전이다.

>>> from collections import deque
>>> test = [1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> test = deque(test)
>>> test.rotate(2) 
>>> result = list(test)
>>> result
[8, 9, 1, 2, 3, 4, 5, 6, 7]

양수 2를 넣으면 오른쪽으로 회전한것을 볼 수 있다.

728x90
반응형

댓글