1.
Arrays.sort()을 진행하면 평균 시간복잡도가 O(nlog₂n)입니다.
코드를 읽어보니 Array.sort()를 하는 이유가 최대값을 구하는 것이기 때문에
Array.sort()를 사용하지 않고 입력값만 비교하여 최대값을 구하는 방향으로 진행하면 좋아질 것 같습니다.
2.
이분 탐색은 중간값을 통해서 조건에 만족하는지 확인하여 조건에 만족하는 값을 찾는 알고리즘입니다.
42~53줄의 코드는 중간값을 이용하는 것이 아닌 추가적으로 for문을 진행하는 것으로 시간초과의 원인이 될 것 같습니다.
3.
42 ~ 53줄 코드는 조건에 만족하는 최대 랜선의 길이를 찾아서 이분탐색을 종료하는 코드로 보입니다.
그럼.. 2.번에서 설명한 코드를 없애개 된다면 다른 방식의 이분 탐색을 종료하는 방법을 고민해서 적용시키면 시간초과가 발생하지 않을 것 같습니다.
skyeee25 1년 전
이진탐색 쓰라고 해서 이진탐색 썼습니다. 간간히 for 이중 중첩 코드가 생각났지만 꾸욱 참고 이중중첩을 쓰지 않았습니다. 값은 제대로 나옵니다. 선생님들 대체 어떻게 해야 시간을 줄일 수 있을까요?