본문 바로가기
프로그램

[파이썬] 문제 : 가변인수로 받은 값으로 정렬

by 오디세이99 2022. 11. 14.
728x90
반응형

가변인수로 받은 값들을 오름차순하여 출력

def func(*arg):      # 가변인자 함수. * 사용
    lst = []          # 가변인자를 저장할 리스트 선언
    for i in arg:     # 가변인자 원소수 만큼 반복
        lst.append(i)  # 원소를 리스트에 추가
    lst.sort()         # 오름차순 정렬
    
    return lst        # 값을 리턴 함
    
print(func(3,1,4,2,5))  # 출력

결과

[1, 2, 3, 4, 5]

 

리스트 sort 함수를 사용하지 않고

def sort(L):
    for i in range(len(L)):
        for j in range(i, len(L)):
            if L[i] > L[j]:
                tmp = L[j]
                L[j] = L[i]
                L[i] = tmp
    return L

def func(*arg):      # 가변인자 함수. * 사용
    lst = []          # 가변인자를 저장할 리스트 선언
    for i in arg:     # 가변인자 원소수 만큼 반복
        lst.append(i)  # 원소를 리스트에 추가
    # lst.sort()         # 오름차순 정렬
    lst = sort(lst)
    
    return lst        # 값을 리턴 함
    
print(func(3,1,4,2,5))  # 출력

결과

[1, 2, 3, 4, 5]

 

 

 

가변인수로 받은 값들을 내림차순하여 출력

def func(*arg):
    lst = []
    for i in arg:
        lst.append(i)
    lst.sort(reverse=True)   # 내림차순으로 정렬
    
    return lst
    
print(func(3,1,4,2,5))

결과

[5, 4, 3, 2, 1]

 

리스트의 sort 함수를 사용하지 않고 

def sort(L):
    for i in range(len(L)):
        for j in range(i, len(L)):
            if L[i] < L[j]:
                tmp = L[j]
                L[j] = L[i]
                L[i] = tmp
    return L

def func(*arg):
    lst = []
    for i in arg:
        lst.append(i)
    # lst.sort(reverse=True)   # 내림차순으로 정렬
    lst = sort(lst)
    
    return lst
    
print(func(3,1,4,2,5))

 

* 참고

https://question99.tistory.com/141

 

[파이썬] *args와 **kwargs

*가 붙어있어서 C언어를 하신 분들은 포인터와 연관시킬 수 있는데, 파이썬에서는 포인터가 아닙니다. *args : arguments = 함수 인자(arguments)의 값을 받아올 수 있음(튜플) **kwargs : keyword arguments = 함

question99.tistory.com

 

728x90
반응형

댓글