hhs250   5년 전

어디서 시간초과가 나는걸까요..? ㅠㅠㅠ

정답이 틀려서 시간초과가 나는 경우도 있나요?

리뷰 부탁드립니다... 감사합니다

djm03178   5년 전

정답이 틀리면 무조건 "틀렸습니다" 입니다. 시간 초과는 프로그램이 제한 시간 내에 끝이 안 나야 받습니다.

djm03178   5년 전

틀린 곳들을 잡아보면 다음과 같습니다.

  1. 치킨집을 어떤 순서로 고르느냐는 상관이 없으므로, 항상 앞에서 뒤로만 골라도 됩니다. 그런데 cnt는 지금까지 치킨집을 몇 개 골랐느냐이지, 지금까지 확인한 치킨집이 몇 개인지를 뜻하지는 않습니다. 그래서 뒤쪽을 고른 뒤에 다시 앞쪽을 고르는 일이 발생하고, 이게 시간복잡도를 매우 높이게 됩니다. 시간 초과의 원인은 이것입니다. 지금까지 확인한 치킨집이 몇 개인지를 함께 인자로 넘기고, 36번째 줄의 for문도 그에 맞추어서 돌리면 됩니다.
  2. 15번째 줄은 이상한 조건입니다. 치킨집을 골라서 서로 별개의 집에 대응시키는 것이 아니라, 그냥 제일 가까운 집이라면 중복될 수도 있는 거기 때문에 이런 조건을 껴넣으면 안 됩니다.
  3. 집의 수는 2N개를 넘지 않는다고 했습니다. 따라서 h_y, h_x의 크기도 최소 100이 되어야 합니다.  

hhs250   5년 전

다시 한 번 풀어보겠습니다.

답변 감사합니다.

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