jabbah   1년 전


안녕하세요

요즘 자바로 문제를 풀고있는데.. 역시 자바가 C++에 비해서 속도가 많이 느리네요


그런데, 시간복잡도상으로 문제가 없다고 판단되어 C++로 구현하여 정답 판정을 받은 논리를

똑~같은 논리의 자바코드로 작성해서 제출했더니 시간초과 뜨는 경우가 간혹 있는데..

혹시 이런 문제들에 대해 건의드리면 자바 채점에 대한 시간제한을 좀 더 늘려주실 수 있나요 ?


baekjoon   1년 전

지금도 자바는 2초의 시간을 더 주고 있습니다.

jabbah   1년 전

답변 감사합니다.


자바 코드의 채점에 대한 제한 시간을 좀 더 넉넉하게 주는것은 알고 있었지만 2초인 것은 처음 알았네요 ㅇ. ㅇ.....

그런데, 아무래도 '2초'라는 값이 모든 문제에 대해서 충분히 넉넉한 시간은 아닌 것 같습니다.


제가 이런 질문을 드리게 된 계기가 1647(도시분할계획)문제 때문인데,

MST를 계산하면서 가장 마지막에 추가되는 간선을 제외함으로써, 입력으로 주어지는 그래프를 두 개의 컴포넌트로 분리시키려는 솔루션을 생각했습니다.

cpp에서도, java에서도 입력되는 간선을 가중치 기준으로 오름차순으로 정렬한 뒤,

array를 기반으로 하는 모든 연산(find, union)이 거의 상수시간인 UnionFind 구조를 구현하고 MST를 계산하는 방식으로 구현했으나

java로 작성한 코드에서는 시간초과 판정을 받았습니다.


cpp에 비해 java로 작성하는게 능숙하지 못해서 비효율적이거나 불필요한 코드영역이 있는지도 모르겠는데...

위에서 말씀드린 문제에 자바로 제출하신 분이 안계셔서 비교해보기도 어렵네요


음... java 채점에 대한 시간을 무작정 더 주는것도 당연히 어렵고

추가시키는 시간을 각 문제마다 적절하게 판단하는것도 어렵고..

시간 초과 났다고 징징댈뿐 실질적인 도움은 드릴 수가 없네요 -.ㅜ....(죄송함니다)

baekjoon   1년 전

2초라는 값이 모든 문제에 대해서 넉넉한 시간은 아닌것은 알고 있지만, 각 문제마다 적절하게 판단하는 것이 어려워서 일괄적으로 2초를 더 주고 있습니다.

저도 이 문제는 어떻게 처리해야 할지 모르겠습니다. 작년 ACM-ICPC 방콕 리저널 같은 경우는 이런 문제를 해결하기 위해서 C/C++에 최적화 옵션을 빼고 컴파일을 하던데, 이건 해결 방법이 아닌 것 같고요.

자바가 원래 C/C++에 비해서 느린 언어라서 어쩔 수 없는 태생적인 문제인 것 같습니다.

온라인 저지를 다시 작성하고 있긴 한데, 거기에는 이를 해결할 기능(문제별+언어별 시간 제한)을 넣고 있기는 합니다.

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