문제 2

윤수환·2025년 8월 13일

코딩테스트(python)

목록 보기
2/9

문제

정수 배열을 하나 받아 배열의 중복값을 제거하고 배열 데이터를 내림차순으로 정렬해서 반환하는 solution()함수를 구현하시오


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


제약 조건

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

풀이

  1. 중복값 제거

set()

  • 집합을 생성하는 내장함수(집합은 중복값을 허용하지 않음)
  • 배열의 중복값 제거
  1. 내림차순 정렬

sort()
-> reverse=True(내림차순)

def solution(lst):
    nlist = list(set(lst))
    nlist.sort(reverse=True)
    return nlist

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

시간 복잡도

  • N은 lst의 길이
  • lst의 중복 원소를 제거하는데 걸리는 시간 복잡도는 O(N)
  • 다시 정렬하는데 걸리는 시간 복잡도는 O(NlogN)

0개의 댓글