kthng   6년 전

코드는 간단한데... 시간초과가 나네요.
어떤부분에서 시간을 단축할수있을까요?

139   6년 전

~scanf("%d", &t) 로 바꿔보세요!

kthng   6년 전

고맙습니다.!  AC네욥... 저렇게해주는게 어떤의미인가요....??

139   6년 전

~은 not이구요, scanf는 성공적으로 받아온 수의 개수를 retrun value로, EOF를 읽거나 혹은 에러발생시에 -1를 return value로 가져요.

-1은 2진수로 1111 1111 ... 1111 이구요, ~을 붙이면 0000 0000 ... 0000이 돼서 0이란 값을 가지게 돼요!

그래서 ~scanf는 EOF를 받은경우 0을 반환해서 while문을 빠져나올 수 있게되는거에요.

그냥 scanf의 경우는 eof를 만나도 -1의 값을 가지기때문에 0이 아니라 다음 입력을 기다리게되고 루프안에서 빠져나올 수 없게되는거죠.

kthng   6년 전

앗 그렇군요!!!

친절한 설명 정말 감사드려요 ㅜㅜㅜㅜ

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