kjw13   4년 전

하.. 항상 배열 관련된 문제를 풀면 런타임 에러가 나오는데요.. cmd로 실행했을때는 다 맞는데 런타임 에러때문에 답답하네요

어디를 고쳐야 할까요

jaehoo1   4년 전

올려주신 코드를 그대로 제출해봤는데,

런타임 에러가 아니라 시간초과가 납니다.

제출했던 코드 그대로를 올려주세요


jaehoo1   4년 전

제출하신 코드를 봤는데,

int box[1000000000]={};

라고 되있더군요.

배열의 크기가 너무 크면, 런타임 에러가 발생합니다.

위에 올려주신 코드 그대로 사용하시면

런타임 에러는 안나지만 시간초과가 납니다

kjw13   4년 전

그럼 시간초과는 어떻게 해결해야 할까요..?

jaehoo1   4년 전

시간초과의 문제점은 무한루프가 없다면, 시간복잡도의 문제입니다.

이 문제의 조건이

첫째 줄에 시험장의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다.

둘째 줄에는 각 시험장에 있는 응시자의 수 Ai (1 ≤ Ai ≤ 1,000,000)가 주어진다.

셋째 줄에는 B와 C가 주어진다. (1 ≤ B, C ≤ 1,000,000)


였는데, N이 1000000, A(전체)가 1000000, B, C가 1이 들어온다면, 17번줄 반복문을 엄청 돌게 되어, 2초안에 프로그램을 끝내지 못해 시간초과가 나게 됩니다.

Worst Case :

1000000

1000000 1000000 1000000 ...

1 1


17번줄의 반복을 줄일 수 있는 방법을 생각해보세요.

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