0702leesj   7년 전

왜 런타임 에러가 뜨는지 모르겠습니다 ㅠㅠ

도와주세용



chogahui05   7년 전

알고리즘을 먼저 설명해 주셨으면 좋으셨을 거 같은데..

x랑 y가 무엇인지를 모르겠는데요.


111111 111111111이 있다면 x에 111111, y에 111111111이 들어가나요?

자릿수가 굉장히 크기 때문에 다른 방법을 생각해 보셔야 합니다.

0702leesj   7년 전

네!!  첫번째에 오는게 X에, 두번째에 오는게 Y에 들어가요!

X만큼 1을 붙이고 Y만큼 1을 붙인후에 유클리드 알고리즘을 실행하는데

자리수가 커도 가능한 방법 아닌가여...? ㅇ0ㅇ....


chogahui05   7년 전

불가능합니다.

아마 런타임 에러가 뜰 겁니다. parseLong에서 exception이 떨어질 거에요.

아니. 그 전에 메모리가 버텨내지 못해서 OOME가 떨어질 거에요. input되는 자연수의 자릿수를 a라고 하면

a가 18자리, 19자리가 되니까요.


1의 갯수가 18개가 아니라 100,000,000,000,000,000,000개? 이 즈음 된다는 소리입니다.

0702leesj   7년 전

아... 혹시 그럼 Long 말고 어떤 방법을 써야할까요 ㅠㅠ?

chogahui05   7년 전

규칙을 찾으셔서 푸시면 됩니다.

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