1912번 - 연속합
위 코드는 처음과 끝 두 방향에서 누적합을 계산해가면서 최대 연속합을 찾는 것 같습니다.
그러나 최대 연속합이 다음과 같은 경우 반례가 발생합니다.
// Input 5 1 -100 50 -100 1 // Answer: 50 // Output: 1
50의 양 옆에 있는 -100으로 인해 각 누적합에서의 최대는 1이므로 위 코드는 1을 출력하지만,
답은 50이므로 틀렸습니다 를 받게 됩니다.
비슷한 반례들:
// Input 15 -74 -6 -7 -5 93 -59 -71 21 58 34 -69 -28 -50 -91 -14 // Answer: 113 // Output: 93 // Input 11 -40 -75 -68 79 -38 26 -82 47 7 -80 -68 // Answer: 79 // Output: -40 // Input 10 40 38 -69 -9 -54 93 -53 -43 19 -75 // Answer: 93 // Output: 78 // Input 7 -4 -58 34 3 -77 -6 31 // Answer: 37 // Output: 31 // Input 5 8 -36 32 -64 -8 // Answer: 32 // Output: 8
또한 정해와 위 코드를 비교했을 때 시간복잡도는 동일한 것 같습니다만,
정해에 비해서 복잡하게 계산되고 있는 것 같습니다.
댓글을 작성하려면 로그인해야 합니다.
kjun2003 1년 전 0
시간 복잡도가 오래 걸리는 코드이긴 하나 시간 초과가 아닌 틀렸다고 채점됩니다.
반례도 궁금하고 현재 코드가 많이 비효율적인 지도 궁금합니다.