작성
·
125
0
http://boj.kr/f680e784e79b45839a545852be677db5
이렇게 하면 왜 시간 초과가 나는지 궁금합니다. 온도의 합을 계산하는데 시간이 너무 많이 걸려서 그러는 걸까요?
큰돌님이 풀어주신 누적합 사용하는 방법은 이해했습니다. 하지만 제가 원래 저렇게 풀었어서 저 방법은 왜 시간 초과가 나는지 궁금합니다!
답변 2
0
안녕하세요 ㅎㅎ
시간 초과가 발생하는 이유는 이중 루프를 사용하여 연속된 k일의 합을 계산하기 때문입니다. 현재 구현은 O(n * k)
시간 복잡도를 가지며, n과 k가 최대 100,000일 때 매우 큰 시간복잡도 -> 시간초과 가 남. 이라고 보시면 됩니다. (10만 * 10만 = 100억)
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다.
AA66님의 경우, 시간 초과 문제에 대한 궁금증을 갖고 계시군요. 시간 초과가 발생하는 핵심 이유는 알고리즘의 시간 복잡도가 높아서 입니다. 즉, 데이터의 양에 비해 처리해야 할 연산이 너무 많을 때 발생합니다. 본질적으로, 온도의 합을 계산하는 과정에서 반복적인 덧셈 연산이 중첩되어 사용될 경우, 이는 시간 복잡도를 기하급수적으로 증가시킬 수 있습니다.
큰돌님의 교육 과정에서 비슷한 문제에 대한 설명을 찾을 수 있습니다. 이는 누적합(Prefix Sum)를 활용하는 방식으로, 큰 배열에 대해 여러 번의 합산 연산을 효율적으로 처리할 수 있는 기법입니다. 누적합을 사용하면 단 한 번의 반복으로 모든 구간의 합을 O(1)의 시간에 구할 수 있게 되어 시간 초과 문제를 해결할 수 있습니다.
이러한 문제를 해결한 기존 답변에서는 아래와 같은 포인트들을 확인할 수 있습니다:
특히, 질문자님이 겪고 계신 시간 초과 문제와 유사한 상황을 다룬 질문에 대한 지식공유자의 답변을 아래에서 확인하실 수 있습니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.