문제 1

윤수환·2025년 8월 13일

코딩테스트(python)

목록 보기
1/9

문제

정수 배열을 오름차순 정렬해서 반환하는 solution() 함수를 완성하시오


권장 시간: 10분
권장 시간 복잡도: O(NlogN)
출제: 저자 출제


제약 조건

  • 정수 배열의 길이는 2 이상 10^5 이하입니다.
  • 정수 배열의 각 데이터 값은 -100,000 이상 100,000 이하입니다.

-> 데이터 개수가 초대 10^5이기 때문에 제한시간이 3초라면 O(N^2)알고리즘은 사용이 불가능
단순히 내림, 오름차순으로 정렬하면 틀림


풀이

def solution(arr):
    arr.sort()
    return arr

print(solution([1,-5,2,4,3])) # 반환값 : [-5, 1, 2, 3, 4]
print(solution([2,1,1,3,2,5,4])) # 반환값 : [1, 1, 2, 2, 3, 4, 5]
print(solution([1,6,7])) # 반환값 : [1, 6, 7]

sort() 메서드

  • 리스트를 오름차순으로 정렬해서 반환
  • 리스트 원본 자체의 값을 바꿈
# 원본 리스트 그대로 두기
def solution(arr):
    sorted_list = sorted(arr)
    return sorted_list

sorted() 메서드

  • 원본을 건드리지 않고, 정렬된 새로운 리스트를 만들어서 반환

시간 복잡도

  • N은 arr의 길이이므로 O(NlogN)

0개의 댓글