1110번 - 더하기 사이클
코드 작성 중에 실수가 있어서 계속 메모리 초과가 나오다가 실수를 발견해서 성공했습니다.
궁금한 것이 있습니다.
while문 안에 있는 if 조건식에서 tmp자리에 제가 초기 입력값을 그냥 숫자로 넣고 테스트한 것을 그대로 제출했더니 메모리초과가 낫던 것 같습니다.
if(a == 26) --------> if(a == tmp)
이렇게 고쳤더니 메모리 초과 문제가 해결됐습니다.
도대체 if문 조건식 안에 26을 넣은 것이 무슨 이유로 메모리 초과를 일으킨걸까요??
a==26 일 때
2번 예제가 잘 돌아가던가요?
a==26일 때 입력을 55로 넣어도 잘 돌아가나요.
제가 a==26으로 코드를 작성하고 55를 입력하면 무한루프에 빠지던데
55넣으면 count가 뭘로 출력되던가요??
제출할 코드는 어떤 입력이 들어오더라도 정답을 출력해야합니다.
질문자님이 올려주신 코드는 그렇지 않은 것 같네요ㅎㅎ
그런 이유로 a==tmp로 했을때 맞았을겁니다.
무한 루프에 빠진 경우 a%10+""+b%10 이 루프를 돌 때마다 새로운 String 객체를 생성합니다. Java에서는 만들어진 객체가 소멸되는 시점을 정확히 알 수 없기에, 대개의 경우 계속해서 새 객체가 문제에서 주어진 메모리 제한을 초과할 때까지 생성되어 메모리 초과를 받게 됩니다.
댓글을 작성하려면 로그인해야 합니다.
yoyob1223 2년 전
코드 작성 중에 실수가 있어서 계속 메모리 초과가 나오다가 실수를 발견해서 성공했습니다.
궁금한 것이 있습니다.
while문 안에 있는 if 조건식에서 tmp자리에 제가 초기 입력값을 그냥 숫자로 넣고 테스트한 것을 그대로 제출했더니 메모리초과가 낫던 것 같습니다.
if(a == 26) --------> if(a == tmp)
이렇게 고쳤더니 메모리 초과 문제가 해결됐습니다.
도대체 if문 조건식 안에 26을 넣은 것이 무슨 이유로 메모리 초과를 일으킨걸까요??