chlwnsgur22   2년 전

거리를 따라잡기 위해 증가하는 변수를 long 자료형이 아닌 int 자료형으로 선언하셨기 때문입니다.

알고리즘이 느리기 때문이 아니에요. BufferedReader, Writer를 쓰지 않아서 틀린 것도 아닙니다.

당신이 생각하신 그 알고리즘은 이미 충분히 빠릅니다.

아마 주어진 거리, 그리고 그 리보다 큰 i(i+1), 그리고 i^2과의 비교를 통해 답을 산출하는 방식이겠죠?

그렇다면 그 프로그램을 지금 실행했다 치고, 거기에 제가 2^31 - 1의 거리를 입했다 생각해 보자고요.

그럼 프로그램은 알고리즘에 따라 당연히 2^31 - 1보다 큰 제곱수를 찾겠죠.. 아마 음수 범위에서요. 그것도 맨 밑바닥에서부터. 양수로 올라와봤자 곧 다시 음수로 처박을 거에요. 끝없이 말이에요.

아니 2^31 - 1보다 큰 제곱수를 찾는데 갑자기 음수가 왜 나오나요? 아.. int라서...

감사합니다. 다 풀어놓고 이걸 몰라서 네 시간을 끙끙댄 본인님.

kimpro   2년 전

감사합니다 ㅎ

shjj925   2년 전

감사합니다!!

snikuz12   2년 전

정말 천재시네요 감사합니다

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