리스트에서 두 번째로 큰 숫자를 찾아야 할 때 버블 정렬(Bubble Sort) 알고리즘을 활용할 수 있습니다. 버블 정렬은 인접한 두 요소를 반복적으로 비교하고 교환하며 리스트를 오름차순으로 정렬하는 가장 기본적인 정렬 방식입니다.
정렬이 완료되면 리스트는 오름차순으로 배치되므로, 맨 뒤에서 두 번째 위치의 요소가 곧 두 번째로 큰 값이 됩니다. 아래 예제를 통해 실제 구현 과정을 살펴보겠습니다.
예제 코드
my_list = []
my_input = int(input("요소의 개수를 입력하세요..."))
for i in range(1, my_input + 1):
b = int(input("요소를 입력하세요..."))
my_list.append(b)
for i in range(0, len(my_list)):
for j in range(0, len(my_list) - i - 1):
if my_list[j] > my_list[j + 1]:
temp = my_list[j]
my_list[j] = my_list[j + 1]
my_list[j + 1] = temp
print('두 번째로 큰 요소는:')
print(my_list[my_input - 2])실행 결과
요소의 개수를 입력하세요...5 요소를 입력하세요...1 요소를 입력하세요...4 요소를 입력하세요...9 요소를 입력하세요...11 요소를 입력하세요...0 두 번째로 큰 요소는: 9
코드 설명
먼저 빈 리스트(
my_list)를 정의합니다.사용자로부터 리스트에 담을 요소의 개수를 입력받습니다.
반복문을 통해 사용자가 입력한 각 요소를 리스트에 추가(append)합니다.
중첩 반복문을 사용하여 인접한 두 요소를 비교하고, 앞의 값이 더 크면 서로 교환하는 버블 정렬을 수행합니다.
정렬이 끝나면 리스트는 오름차순으로 배치됩니다.
인덱스
my_input - 2, 즉 뒤에서 두 번째 요소를 콘솔에 출력하여 두 번째로 큰 값을 확인합니다.
위 예제에서 입력된 값 중 가장 큰 수는 11이고, 두 번째로 큰 수는 9이므로 프로그램은 올바르게 9를 출력합니다. 이처럼 버블 정렬은 구현이 간단하여 정렬과 함께 최댓값, 두 번째 최댓값 등을 손쉽게 찾는 데 활용할 수 있습니다.