O(n)에 k번째 원소를 찾을 수 있는 quick select 알고리즘을 사용하라고 만든 문제입니다.
자바로 제출해본 적이 없어 입출력 병목인지는 모르겠는데 아마 500만까지는 buffered reader 사용하면 괜찮지않나 싶습니다.
우선 위에서 말한 퀵 셀렉트 알고리즘 찾아보시는걸 추천드립니다.
c++에는 stl로 구현이 돼있는데 자바에서는 아마 직접 구현하셔야 할겁니다.
11004번 - K번째 수
Arrays.sort(int[])는 O(N^2)입니다.
C++ 에서 일반 sort는 평균 O(N log N), 최악 O(N log N) (C++11이후) 를 보장하고, Introsort와 Selection sort를 합한 정렬을 사용합니다.
Introsort: https://en.wikipedia.org/wiki/...
Selection sort: https://en.wikipedia.org/wiki/...
댓글을 작성하려면 로그인해야 합니다.
wewe1008 4년 전
입력시간 줄이려고 BufferedReader 사용했는데도 시간초과가 뜨네요 ㅠㅠ
Arrays.sort를 쓰고는 절대 풀지 못하는 문제인가요?
어느부분에서 시간초과인지 알고싶습니다.