7개의 댓글이 있습니다.
-
-
heekyu -
시간재는 코드가 어떤 식으로 구현되어 있는지 모르겠는데요,
만약 프로그램 실행부터 끝날 때까지 시간을 재는 방식이라면
입출력, 실제 실행 이외에도 요소들에 의해 수행시간에서 패널티가 존재할 것 같습니다.
저는 주로 java로 짜는데요
java는 실행할 때 JVM system library들도 뜨고 bytecode 컴파일도 런타임에 이루어집니다.
입출력도 미미하고 실제로 하는 일도 별로 없는 코드를 돌려도 기본적으로 100ms~200ms는 먹고 들어갑니다.https://algospot.com/judge/submission/detail/212001
이건 루프 8번 돌고 끝나는데 시간초과(1000ms)가 납니다.다른 언어들은 상황을 자세히 모르지만 비슷한 문제들을 가지고 있지 않을까 예상해 봅니다.
물론 이건 실제 채점 모듈이 어떻게 되어 있는지 모르는 상태에서 한 추측이므로 사실과 다를 수 있습니다만,
확인해 본다고 하셨으니 이런 부분도 같이 고려해 보시면 좋을 것 같습니다.
10년 전 link
-
-
정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.
bupjae
MEETING 문제를 풀기 위해 다음과 같은 go 코드를 작성하였습니다:
제출을 했더니 "시간초과" 오류를 받았습니다.
라이브러리에서 제공된 sort 알고리즘에 문제가 있나 라고 생각해서 sort를 직접 구현해서 다시 제출했습니다:
하지만 이 프로그램도 시간초과에 걸렸습니다.
이 결과를 도저히 받아들일 수 없어서, 이 프로그램을 그대로 C++로 옮겨서 구현했습니다:
75ms만에 정답을 받았습니다.
go 언어를 배우면서 이 사이트에 올려진 문제를 풀려고 하고 있습니다만, 이 정도 문제에서조차 시간초과 오류를 받아버리면 아무래도 go 언어로 문제를 푸는 것 자체가 어렵지 않을까 생각되어 문제제기를 해 봅니다.
*** 수정: 입력 방식에 따른 속도 차이를 고려, 좀 더 빠른 방식인 bufio.Scanner 로 다시 구현해봤습니다:
208ms 만에 정답을 받았습니다.
물론 C++에 비해 다소 느리긴 하지만, 이 정도 차이는 충분히 납득 가능합니다.
10년 전