[python] 페이지 회전하기

문제

주어진 텍스트 파일이 있다고 가정하자. 이 파일은 여러 페이지로 구성되어 있으며, 각 페이지는 정수로 표시된다. 이때, 페이지를 오른쪽으로 회전하는 동작을 구현하려고 한다.

예시

입력:

[1, 2, 3, 4, 5]

회전 1번 진행 후 출력:

[5, 1, 2, 3, 4]

회전 2번 진행 후 출력:

[4, 5, 1, 2, 3]

해결 방법

파이썬에서는 리스트를 회전시키기 위해 슬라이싱을 사용할 수 있다. 아래는 주어진 리스트를 오른쪽으로 회전시키는 함수의 예시이다.

def rotate_page(lst, n):
    n = n % len(lst)  # n이 리스트의 길이보다 큰 경우를 고려하여 나머지 연산을 수행한다
    return lst[-n:] + lst[:-n]

위 함수는 리스트를 슬라이싱하여 오른쪽으로 n만큼 회전시킨 결과를 반환한다. 입력으로 주어진 리스트의 길이보다 큰 n을 입력할 경우, 리스트의 길이로 나눈 나머지를 계산하여 실제 회전 횟수를 결정하게 된다.

실행 예시

pages = [1, 2, 3, 4, 5]
rotated_pages = rotate_page(pages, 1)
print(rotated_pages)  # [5, 1, 2, 3, 4]

rotated_pages = rotate_page(pages, 2)
print(rotated_pages)  # [4, 5, 1, 2, 3]

참고 자료