[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]