koola97620   7년 전

이전 문제도 계속 시간초과로 실패했었는데  이 문제도 실패가 떠서...

그냥 지나가기엔 답답해서 처음으로 질문 올려봅니다 ㅠㅠ

우선 시간초과 의심 부분이 69,95번째 줄에서 시작하는 코드들 입니다.

69번째 줄의 while문은 점들을 입력받고 중복된 점이 있는지 검사를 한 후에 

List에 넣는 코드들입니다. Scanner사용 보다는 이 방법이 더 빠를 거 같아서 이렇게 짰습니다.

95번째 줄은 점들을 하나씩 비교하는 이중 for문인데... 느낌으로는 이 부분이 시간초과의 원인인것

같기는 한데. 다른분들의 의견이 궁금해서 질문올려봅니다. 

unused   7년 전

작성하신 코드대로라면 루프를 총 1억의 제곱 번 돌게 됩니다. 보통 루프 1억~2억 번 정도 도는 데 1초가 걸리므로, 작성하신 코드는 약 1억 초가 걸리겠네요. 시간제한이 1초인 문제이므로 당연히 시간 초과가 납니다.

이 문제를 푸는 데는 모든 쌍을 다 검사하는 것이 아닌, 더 효율적인 알고리즘이 필요합니다.

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