junen   3년 전

정답 코드를 보아도 동작에는  차이가 없어보이는데 시간초과가 뜨는 이유를 모르겠습니다....

정답도 제대로 출력이 됩니다.

입출력 문도 scanf와 printf로 바꾸었습니다.

변수에 백만자리 숫자를 한번 더 y에 string형으로 저장하고 하는게 시간 초과에 영향이 있는걸까요

1. long long x에는 최대 9.2 * 10^18, 즉 18자리 수만 담깁니다. 즉 1,000,000자리 수는 지금과 같이 long long에 올바르게 저장될 수 없습니다.

2. 시간 초과가 나는 이유는 x에 integer overflow로 인해 음수가 저장되었을 때의 상황이 이상하게 되어서 그렇습니다. 예를 들어 x에 -1이 저장될 경우 -1, -2, -1, -2, ... 이렇게 반복됩니다.

맨 처음 주어지는 1,000,000자리 수를 정수에 담으려고 하기 보다는 string으로 처리를 해야 합니다.

junen   3년 전

감사합니다! 덕분에 해결했습니다

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