본문 바로가기

코딩테스트/코딩 테스트 입문

배열 회전시키기

문제

 

# 내 풀이

내 풀이

  • list.pop() : 리스트의 마지막 요소를 제거한 후, 그 값을 반환하는 리스트 객체의 메서드이다.
    • 리스트 객체이기 때문에 pop()을 호출하면 다시 대입하지 않아도 리스트 자체가 변경된다.
    • 인덱스를 통해 특정 리스트의 값을 제거할 수 있다. 다만 인덱스가 리스트의 범위를 넘으면 오류가 발생한다.
  • insert(i, x) : 리스트의 i 인덱스에 x 값 추가하는 리스트 객체의 메서드이다.
    • 리스트 객체이기 때문에 insert(i, x)을 호출하면 다시 대입하지 않아도 리스트 자체가 변경된다.
    • 인덱스가 리스트 길이보다 크면, 자동으로 리스트의 맨 끝에 추가된다.

 

 

# GPT 풀이

from collections import deque

def solution(numbers, direction):
    dq = deque(numbers)
    
    if direction == "right":
        dq.rotate(1)
    else:
        dq.rotate(-1)
    
    return list(dq)
  • collections 모델의 deque, rotate 메서드를 활용하면 훨씬 쉽고 효율적으로 만들 수 있다.

 

 

# deque :

  • 양쪽 끝에서 삽입과 삭제과 모두 가능한 큐 자료형(FIFO)이다.
  • 리스트와는 달리 양쪽 끝에서의 삽입/삭제가 매우 효율적이다.
  • rotate() 메서드를 사용하면 큐의 원소들을 회전시킬 수 있다. 이는 큐의 원소들을 앞뒤로 이동시키는 데 유용하다.

'코딩테스트 > 코딩 테스트 입문' 카테고리의 다른 글

중복된 문자 제거  (0) 2025.03.10
숫자 찾기  (0) 2025.03.10
외계 행성의 나이  (0) 2025.03.07
피자 나눠 먹기 (2)  (0) 2025.03.07
문자열 정렬하기(2)  (0) 2025.03.06