강의로 돌아가기
-

[참고하세요!]C++/Java 시간초과나 반 정도 틀릴때....

이번 문제 풀면서, 저 같은 경우 2시간 정도 소요됐는데, 오래 걸린 시간의 원인을 공유하고자 합니당 ^

제 생각에는 파이썬/자바스크립트를 제외하고 타입 시스템이 존재하는 언어를 사용하시는 분들은 저와 같은 에러를 만날 수 있을 것 같습니다.

여러분들의 알고리즘이 제대로 짜여졌다고 가정했을 때,
C++의 경우, unsinged long long 타입으로 solution의 반환형을 바꿔야 정상적으로 돌아갑니다. 왜냐하면 long long을 포함한 그 이하의 정수형일 경우, 입력이 엄청나게 커서 오버플로우가 발생하게 됩니다. 따라서, 입력이 작은 경우만 테스트케이스가 통과하고 나머지는 시간초과 혹은 오답이라고 판정이 나게 되죠. 그래서 문제 입력을 아래 코드처럼 바꿔주시면 됩니다.

unsigned long long solution(int n, vector<int> times) {
    unsigned long long answer = 0;
    //코드 작성
    return answer;
}

signed 형만 지원하는 자바 같은 언어는 BigInteger나 Long 보다 더 큰 정수형 혹은 실수형을 사용해야 할 것 같습니다.

1 개의 답변
Demi

안녕하세요.
일부 언어에 초기코드가 int 타입 값을 리턴하도록 설정되어있었습니다.
현재는 초기코드에서 long long 타입 값을 리턴하도록 수정하였습니다.

답변 쓰기
This input form supports markdown syntax. Please refer to 마크다운 가이드.