[프로그래머스][파이썬] 배열 회전시키기 - 배열 (Level 0)

뻥튀기아이스크림·2025년 3월 16일
1
post-thumbnail

◽ 문제 출처

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

◽ 문제

◽ 입력 & 출력

◽ 내 풀이

def solution(numbers, direction):
    answer = [0] * len(numbers)
    
    for i in range(len(numbers)):
        if direction == 'right':
            answer[(i + 1) % len(numbers)] = numbers[i]
        else:
            answer[(i - 1) % len(numbers)] = numbers[i]
            
    return answer

◽ 다른 사람 풀이

from collections import deque

def solution(numbers, direction):
    numbers = deque(numbers)
    
    if direction == 'right':
        numbers.rotate(1)
    else:
        numbers.rotate(-1)
        
    return list(numbers)
  • 파이썬 내장 deque을 통해 똑똑하게 풀었다.
  • deque이 어떤 자료구조인지는 알고 있었으나, rotate() 함수가 있는지는 몰랐다.

◽ 더 나아가기

  • 파이썬의 deque 은 양쪽 끝에서 삽입과 삭제가 빠른 자료구조이다.
  • 양쪽에서 모두 O(1) 연산이 가능하고, 연결 리스트 구조로 메모리 할당이 효율적이다.
  • rotate() 함수는 인자가 양수라면 오른쪽으로, 음수라면 왼쪽으로 이동한다.



피드백은 언제나 환영입니다 :)

profile
성장하고 싶은 개발자

0개의 댓글