sc3289   2년 전

정렬 직접 다 하고 이진탐색을 한 후 수가 있다면

근처 index 서칭하면서 수를 찾는 식으로 구현했습니다.

시간 초과가 걸릴만한 부분은 counting 함수에서 같은 수를 찾는게 아닐까 합니다.

이것도 worst case의 경우 O(N)이라고 생각하는데

여기서 시간초과가 뜨는게 맞다면

이진탐색으로 풀 경우 저 방법외에 시간을 줄일 수 있는 방법이 있을까요?.....

ehdrmsl2001   2년 전

lower_bound와 upper_bound로 푸는 문제였던 거 같네요

이진 탐색과 비슷하게 구현할 수 있으니 한 번 찾아보세요

kimnamu   2년 전

한번 카운팅한 숫자는 memoization해둬서 다시 카운팅하지 않도록 해야할것 같아요.

map을 사용하면 될것 같은데, 근데 그렇게되면 binary search하지 않고 map만 사용해도 풀린다는건 안비밀입니다.

sc3289   2년 전

이진탐색 이후에 저렇게 카운팅하는 과정이 추가된다고 해도 O(N) 추가니까 크게 상관 없을 것 같았는데 한번 카운팅 했던게 worst case로 여러번 들어오면 문제가 되긴 하겠네요...

upper_bound lower_bound 랑 map 을 아직 몰라서 이진탐색으로 도전해봤는데 찾아서 공부해봐야겠군요! 감사합니다

댓글을 작성하려면 로그인해야 합니다.