리스트에서 값이 감소하기 시작하는 지점(감소 지점)을 찾아야 할 때는 간단한 반복문과 break 문을 활용하면 됩니다. 인접한 두 요소를 차례로 비교하여, 뒤의 요소가 앞의 요소보다 작아지는 순간의 인덱스를 찾아내는 방식입니다.
예제 코드
다음은 이를 구현한 예제입니다.
my_list = [21, 62, 53, 94, 55, 66, 18, 1, 0]
print("The list is :")
print(my_list)
my_result = -1
for index in range(0, len(my_list) - 1):
if my_list[index + 1] < my_list[index]:
my_result = index
break
print("The result is :")
print(my_result)실행 결과
The list is : [21, 62, 53, 94, 55, 66, 18, 1, 0] The result is : 1
코드 설명
정수로 이루어진 리스트를 정의하고 콘솔에 출력합니다.
결과를 저장할 정수 변수를 초기값(-1)으로 선언합니다. 이 값은 감소 지점이 없을 경우의 기본 반환값 역할을 합니다.
리스트를 순회하면서 연속된 두 인덱스의 요소 값을 비교합니다.
만약 다음 인덱스의 값이 현재 인덱스의 값보다 작다면, 해당 인덱스를 결과 변수에 저장합니다.
break문을 통해 반복문을 즉시 빠져나와 불필요한 추가 연산을 방지합니다.최종적으로 감소 지점의 인덱스가 콘솔에 출력됩니다.
위 예제에서는 62 다음에 오는 53이 더 작기 때문에, 첫 번째 감소 지점인 인덱스 1이 결과로 출력됩니다. 이 방법은 시간 복잡도 O(n)으로 리스트를 한 번만 순회하므로 효율적이며, 감소 지점을 발견하는 즉시 종료되어 성능 면에서도 유리합니다.