cd2420   2년 전

자꾸 메모리초과가 떠서 확인하는 와중에 너무 이해가 안되어서 질문을 올립니다...

제 코드로 확인할때는 계속 출력초과로 안넘어가서 결국 다른 사람의 코드를 봤는데, 혹시 break 걸리게 하는 게 많이 다른가요?? 그리고 왜 0.5를 더해줘야하는지 알려주실 수 있으실까요?

djm03178   2년 전

출력 초과는 말 그대로 출력이 정답에 비해 너무 많아서 나게 됩니다. 각각의 케이스에서 입력이 (n+1)줄만큼 주어지므로 (n+1)줄을 모두 입력받을 때마다 한 줄만을 출력해야 하는데, 제출하신 코드는 (n+1)줄 각각에 대해 전부 출력하기 때문에 너무 많이 출력하게 됩니다.

0.5를 더하는 이유는 실수 오차가 발생하여 m * 100이 정확히 정수가 되지 않을 수 있고, 특히 그 값이 조금 모자라서 0.9999999와 같은 형태가 되는 경우 int를 했을 때 1이 되는 것이 아니라 0이 되는 문제가 발생하기 때문입니다.

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