View

list.sort()와 sorted(list)의 차이

Melody:) 2022. 7. 11. 22:26

오늘은 프로그래머스의 '완주하지 못한 선수' 문제를 풀면서 알게된

정렬 함수 list.sort()와 sort(list)의 차이에 대해 알아보겠습니다.

def solution(participant, completion):
    participant.sort()
    completion.sort()
    for i in range(len(participant)):
        try:
            if participant[i] != completion[i]:
                return participant[i]
        except:
            return participant[i]

위코드와 아래 코드는 어떤 차이가 있을까요?

def solution(participant, completion):
    participant = participant.sort()
    completion = completion.sort()
    for i in range(len(participant)):
        try:
            if participant[i] != completion[i]:
                return participant[i]
        except:
            return participant[i]

간략하게 살펴보면, sorted함수는 리스트가 정렬된 상태의 새로운 객체를 생성하여, 기존 리스트에 영향을 주지 않는 점이 있으며, 

sort 함수는 해당 리스트의 원본 값을 정렬하는 것이므로, 원본 리스트에 영향을 주는 차이가 있습니다.

그렇다면,  위와 아래의 코드 중 어떤 코드가 효율성 측면에서 속도가 더 빠를까요!?

아무래도 새로운 객체를 생성하는데에, 시간이 필요하게 되므로, 위의 코드가 더 빠를수 있을 것 같습니다.

추가로 위 코드에서 눈의띄는 것은 정렬된 두 리스트를 비교하는데에 있어서, 리스트의 갯수가 일치하지 않아,

index error가 발생할 수 있는데, 이에 대해 try except로 예외처리를 하였다는 점을 볼 수 있습니다.

보통은 API를 만들때 try except로 예외처리를 해주었는데, 알고리즘에서도 에러를 방지하기 위해

 append()를 통해 요소를 추가하여 리스트 갯수를 맞추는 것이 아닌 try except를 통해 예외 처리를 할수 있는 방법 또한 새롭게 알게되었습니다. 

Share Link
reply
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31