개요
이 튜토리얼에서는 주어진 시작 인덱스부터 리스트를 순환(cyclic) 방식으로 반복하는 프로그램을 작성해 보겠습니다. 리스트의 마지막 요소에 도달하면 다시 처음으로 돌아가 나머지 요소들을 이어서 출력하는 방식입니다.
문제 해결 단계
- 리스트와 시작 인덱스를 초기화합니다.
- len() 함수로 리스트의 길이를 구합니다.
- 리스트의 길이만큼 반복문을 실행합니다.
- index % length 연산으로 현재 요소의 실제 인덱스를 계산합니다.
- 해당 요소를 출력합니다.
- 다음 요소를 위해 인덱스를 1씩 증가시킵니다.
간단한 반복문 처리이므로 어렵지 않게 구현할 수 있습니다. 바로 코드를 살펴보겠습니다.
예제 코드
# 리스트와 시작 인덱스 초기화
alphabets = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
start_index = 5
# 리스트의 길이 구하기
length = len(alphabets)
# 리스트 순환 반복
for i in range(length):
# 현재 요소의 실제 인덱스 계산
element_index = start_index % length
# 요소 출력
print(alphabets[element_index], end=' ')
# 다음 요소를 위해 인덱스 증가
start_index += 1
실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
f g h a b c d e
동작 원리 설명
시작 인덱스는 5, 리스트의 길이는 8입니다. 첫 번째 반복에서 5 % 8 = 5이므로 여섯 번째 요소인 'f'가 출력됩니다. 이후 인덱스가 6, 7로 증가하면서 'g', 'h'가 차례로 출력되고, 인덱스가 8이 되면 8 % 8 = 0이 되어 다시 첫 번째 요소 'a'부터 출력됩니다.
이처럼 나머지 연산자(%)를 활용하면 리스트의 끝에 도달했을 때 자동으로 처음으로 돌아가는 순환 구조를 손쉽게 만들 수 있습니다.
마무리
나머지 연산을 활용한 순환 반복은 원형 큐, 게임 턴 관리, 스케줄링 등 다양한 분야에서 유용하게 활용됩니다. 튜토리얼 내용에 대해 궁금한 점이 있다면 댓글로 남겨주세요.