1011번 - Fly me to the Alpha Centauri
거리를 따라잡기 위해 증가하는 변수를 long 자료형이 아닌 int 자료형으로 선언하셨기 때문입니다.
알고리즘이 느리기 때문이 아니에요. BufferedReader, Writer를 쓰지 않아서 틀린 것도 아닙니다.
당신이 생각하신 그 알고리즘은 이미 충분히 빠릅니다.
아마 주어진 거리, 그리고 그 거리보다 큰 i(i+1), 그리고 i^2과의 비교를 통해 답을 산출하는 방식이겠죠?
그렇다면 그 프로그램을 지금 실행했다 치고, 거기에 제가 2^31 - 1의 거리를 입력했다 생각해 보자고요.
그럼 프로그램은 알고리즘에 따라 당연히 2^31 - 1보다 큰 제곱수를 찾겠죠.. 아마 음수 범위에서요. 그것도 맨 밑바닥에서부터. 양수로 올라와봤자 곧 다시 음수로 처박을 거에요. 끝없이 말이에요.
아니 2^31 - 1보다 큰 제곱수를 찾는데 갑자기 음수가 왜 나오나요? 아.. int라서...
감사합니다. 다 풀어놓고 이걸 몰라서 네 시간을 끙끙댄 본인님.
감사합니다 ㅎ
감사합니다!!
정말 천재시네요 감사합니다
댓글을 작성하려면 로그인해야 합니다.
chlwnsgur22 2년 전 7
거리를 따라잡기 위해 증가하는 변수를 long 자료형이 아닌 int 자료형으로 선언하셨기 때문입니다.
알고리즘이 느리기 때문이 아니에요. BufferedReader, Writer를 쓰지 않아서 틀린 것도 아닙니다.
당신이 생각하신 그 알고리즘은 이미 충분히 빠릅니다.
아마 주어진 거리, 그리고 그 거리보다 큰 i(i+1), 그리고 i^2과의 비교를 통해 답을 산출하는 방식이겠죠?
그렇다면 그 프로그램을 지금 실행했다 치고, 거기에 제가 2^31 - 1의 거리를 입력했다 생각해 보자고요.
그럼 프로그램은 알고리즘에 따라 당연히 2^31 - 1보다 큰 제곱수를 찾겠죠.. 아마 음수 범위에서요. 그것도 맨 밑바닥에서부터. 양수로 올라와봤자 곧 다시 음수로 처박을 거에요. 끝없이 말이에요.
아니 2^31 - 1보다 큰 제곱수를 찾는데 갑자기 음수가 왜 나오나요? 아.. int라서...
감사합니다. 다 풀어놓고 이걸 몰라서 네 시간을 끙끙댄 본인님.