본문 바로가기
프로그램

[파이썬] 문제 : 버블정렬 코드 채우기

by 오디세이99 2024. 4. 25.
728x90
반응형

arr = [23, 78, 56, 456, 1, 98, 7]
new = []
for i in range(len(arr)):                # ㄱ
    for j in range(0, len(arr) - i - 1): # ㄱ
        if arr[j] < arr[j+1]:
            temp = arr[j]                # ㄴ
            arr[j] = arr[j+1]
            arr[j+1] = temp
    new.append(arr[-(i+1)])              # ㄷ 
    
print(arr)
print(new)

 

 

다음과 같이 print(arr)로 정렬되는  arr 을 보면

arr = [23, 78, 56, 456, 1, 98, 7]
new = []
for i in range(len(arr)):
    for j in range(0, len(arr) - i - 1):
        if arr[j] < arr[j+1]:
            temp = arr[j]
            arr[j] = arr[j+1]
            arr[j+1] = temp
    print(arr)
    new.append(arr[-(i+1)])
    
print(arr)
print(new)

arr의 -i+1 인덱스 값을 사용하면 됨을 알 수 있음

[78, 56, 456, 23, 98, 7, 1]   # 1 : -1 (i=0 일때 -(i+1))
[78, 456, 56, 98, 23, 7, 1]   # 7 : -2 (i=1 일때 -(i+1))
[456, 78, 98, 56, 23, 7, 1]   # 23 : -3 (i=2 일때 -(i+1))
[456, 98, 78, 56, 23, 7, 1]
[456, 98, 78, 56, 23, 7, 1]
[456, 98, 78, 56, 23, 7, 1]
[456, 98, 78, 56, 23, 7, 1]
[456, 98, 78, 56, 23, 7, 1]

-(i+1)로 arr의 뒤에서부터 값을 1, 7, 23... 등으로 가져올 수 있음

728x90
반응형

댓글