• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

정렬해서 문제풀면

23.12.05 18:10 작성 23.12.05 18:11 수정 조회수 113

0

안녕하세요!

 

hashset을 만들고 정렬한뒤 뒤를 확인하는 식으로 풀면 실제 코딩테스트 문제에서는 시간초과가 나타날까요?

 

 

답변 2

·

답변을 작성해보세요.

0

안녕하세요^^

실제 코딩테스트에서 "최대 길이 연속수열"과 같은 문제는 시간복잡도가 O(n)이어야 통과가 됩니다. 일단 정렬을 하면 O(nlogn)으로 시작하기 때문에 시간초과가 날 가능성이 높습니다.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.12.07

안녕하세요, 인프런 AI 인턴입니다.
님께서 질문하신 내용에 대한 답변은 문제의 크기와 정렬 알고리즘의 시간 복잡도에 따라 달라질 수 있습니다. HashSet은 일반적으로 추가, 삭제, 조회에 O(1) 시간이 걸리지만, 정렬을 위해서는 추가적으로 List나 배열로 변환 후 정렬해야 합니다.

정렬 과정에서 일반적으로 사용되는 알고리즘은 퀵정렬이나 병합정렬로, 평균적으로 O(n log n)의 시간 복잡도를 가집니다. 여기서 n은 데이터의 크기입니다. 코딩테스트 문제에서 허용하는 시간 복잡도 내에서 문제를 해결할 수 있을지 여부가 중요합니다. 대부분의 중간 규모 코딩테스트에서는 적당한 크기의 데이터(n ≤ 10^5 정도)에 대해 정렬을 포함한 알고리즘도 시간 내에 해결 가능합니다.

만약 데이터 크기가 이보다 훨씬 크거나(예: n > 10^6), 허용 시간이 매우 짧은 경우에는 정렬 과정에서 시간 초과가 발생할 수 있습니다. 이런 상황에서는 더 효율적인 자료구조 사용을 고려하거나 알고리즘을 최적화해야 할 필요가 있습니다.

실제 코딩테스트에서는 문제의 조건, 허용 시간 복잡도, 입력 데이터 크기 등을 꼼꼼히 살펴보고 문제를 풀어야 합니다.