퍼포먼스 : 4 > 1 > 2 == 3
주의 : nums = []는 리스트를 초기화시키는 것이 아니라, 기존의 리스트를 참조하지 않고 빈 리스트를 새로 참조하는 것.
파이썬은 모든 것이 객체이기때문에 파라미터로 객체에 대한 참조를 넘겨주게 됩니다.
하지만, 이때 중요한 것은 객체에 대한 참조, 즉 자료의 참조이지, 변수에 대한 참조를 넘겨주는 것이 아닙니다.그렇기 때문에 immutable한 자료형의 경우 값을 할당할 경우 immutable의 특성상 새로운 데이터에 대한 참조가 일어나게 되고, 더이상 함수가 호출됐을 당시 넘어왔던 자료의 참조는 사라지기 때문에, 원본 데이터에 영향을 끼치지 못합니다.
하지만 mutable한 자료형의 경우 값을 할당할 경우 immutable한 자료형과 동일하지만, 값을 할당하는 것이 아니라 변경할 경우는 함수가 호출됐을 당시 넘어왔던 자료의 참조가 동일하게 유지되므로, 원본 데이터에도 영향을 끼치게 됩니다.
시간 또는 메모리를 분석하는 알고리즘의 복잡도를 계산할 때, 알고리즘 전체를 보지 않고 최악의 경우만을 살펴보는 것은 지나치게 비관적이라는 이유로 분할 상환 분석 방법이 등장하는 계기가됐다