hkh1284   2년 전

코드를 실행해보았을 때, 출력은 잘 되는데

제출하면 시간초과가 뜹니다.

무엇이 문제인지 고수분들 조언부탁드립니다.

wlsxkr77   2년 전

만약 X=10,000,000 일 경우에 시간제한이 0.5초인 것에 비해 루프를 너무 많이 돌아야합니다. 그래서 루프를 돌면서 하는 것이 아닌, 몇 번째 라인인지를 먼저 알고 난 이후에 풀어야할 것 같습니다.

예를들어 X = 22 이라면 1번째 라인은 1개(1/1), 2번째 라인은 2개(1/2, 2/1), 3번째 라인은 3개(1/3, 2/2, 3/1) ... 이므로 n번째 라인은 n개가 필요합니다. 즉 n번째 라인까지 총 필요한 분수들은 Sn = n*(n+1)/2 이므로 n = 6 일 때 Sn = 21입니다. 즉 22번째 라인은 7번째 라인에 있겠네요. 

이런 식으로 접근해야 할 것 같습니다.
 

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