자료구조와 함께 배우는 알고리즘 입문

0

Algorithm

목록 보기
1/3
post-thumbnail

리스트를 역순으로 정렬하기

from typing import Any, MutableSequence

def num_reserve(a: MutableSequence):
    for i in range(len(a) // 2):
        n = len(a)
        a[i],a[n-i-1] = a[n-i-1], a[i]
    
if __name__ == '__main__':
        nx = int(input('원소 수 입력:'))
        x = [None] * nx
        for i in range(nx):
            x[i] = int(input(f'f[{i}]값을 입력하세요:'))

num_reserve(x)

for i in range(nx):
    print(f'x[{i}] = {x[i]}')
>>> print

원소 수 입력: 4
f[0]값을 입력하세요: 3
f[1]값을 입력하세요: 5
f[2]값을 입력하세요: 56
f[3]값을 입력하세요: 234
x[0] = 234
x[1] = 56
x[2] = 5
x[3] = 3

함수 코드 설명

def num_reserve(a: MutableSequence):
    for i in range(len(a) // 2):
        n = len(a)
        a[i],a[n-i-1] = a[n-i-1], a[i]

배열 내 수를 교환 시켜주는 함수이다.
배열 내 수 교환 횟수는 배열의 길이 나누기 2의 몫이다.

만약 수가 7개 있다면 사진과 같은 방식으로 3번 교환 하게 된다.

if문

if __name__ == '__main__':
        nx = int(input('원소 수 입력:'))
        x = [None] * nx
        for i in range(nx):
            x[i] = int(input(f'f[{i}]값을 입력하세요:'))

우선 실행하는 파일이 현재 파일일 경우
nx 변수에 list의 원소 개수를 입력하고 해당 값은 리스트 x의 길이가 된다.
다음 list의 길이 만큼 반복하며 None이었던 리스트 내부의 값들을 입력한 값으로 바꿔준다.

for문

출력을 위한 코드

reversed()

이외에 리스트를 역순으로 정렬하는 간단한 방법은 파이썬 내장함수를 사용하면 된다.

a = [1,2,3,4,5,6,7]
b = list(reversed(a))
print(b)
profile
I want to be a Backend Developer

0개의 댓글