lmklove0   2년 전

제출번호 32227593 코드(문자열 배열의 길이를 100으로 선언)에 대한 반례가 존재합니다.

djm03178   2년 전

배열의 길이를 벗어나는 것은 undefined behavior이기 때문에 운이 좋으면 맞는 답이 출력될 수도 있습니다. 반드시 반례가 된다고 단정지을 수 없습니다.

또한 길이가 100인 입력은 이미 존재합니다.

lmklove0   2년 전

올바른 입력이 주어졌을 때 정답이 아닌 값을 출력하였지만 '맞았습니다'를 받은 코드는

잘못된 채점으로 인해서 맞았다고 채점된 코드이고, 그 때의 올바른 입력을 반례라고 말한다고 생각하였습니다!

djm03178   2년 전

채점 프로그램에서는 저 입력을 넣어도 정답이 출력될 것이라는 뜻입니다.

djm03178   2년 전

직접 테스트하셨을 때는 저 입력에 대해 0을 출력했어도, 그게 코드의 논리상의 문제가 아닌 undefined behavior에 의한 것이기 때문에 채점 서버에서는 무슨 결과가 나올지 알 수가 없습니다. 그리고 이미 길이가 100인 입력이 채점 데이터에 있기 때문에, 이 입력과 비슷한 케이스를 채점 서버에서 실행했을 때 정답 출력에 영향을 안 주는 방향으로 작동했을 가능성이 크고, 따라서 이 입력에 대해서도 올바르게 10을 출력할 가능성이 큽니다.

이런 이유 때문에 undefined behavior에 의한 반례는 그게 채점 서버에서도 반례가 되는지 알 수 없어 데이터 추가의 필요성의 근거가 되기 어렵습니다.

lmklove0   2년 전

아 그렇군요! 친절하게 설명해주셔서 감사합니다 :)

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