identity1978   4년 전

문제 조건에 최대 100글자라고 돼 있는데

제가 배열을 [100] 개를 생성했는데도 문제 통과가 되네요.

그래서 문자 100개를 입력해보면 오류가 뜹니다..[101]로 해야 되는데

배열이 [100]개일 땐  통과가 안되야 맞는거 아닌가요?

jh05013   4년 전

배열의 범위를 넘어서는 접근은 undefined behavior라고 하여, 무슨 일이든 일어날 수 있습니다.

identity1978   4년 전

아뇨 그러니까 제 말의 의도는...

문제에서 제한이 100개까지라고 해놨으면

100개일 때도 코드가 정상적으로 처리 돼야 하는데

제가 배열을 100개로 해놔서 문자열을 100개 입력하면 채점 시 틀렸습니다가 나와야 하는데

맞았습니다가 나온다는 말이었습니다..

jh05013   4년 전

무슨 일이든 일어날 수 있다는 것은 오류를 내지 않고 정답을 출력하는 경우도 포함합니다. 실제로 이 문제에는 길이가 67인 데이터가 분명히 존재함에도 (링크), 배열 길이를 67로 잡은 코드가 맞았습니다를 받습니다. (링크)

그래서 길이가 100인 데이터가 없음을 확실히 하려면 반드시 assert문 등으로 해당 조건을 검사해 줘야 합니다.

jh05013   4년 전

그리고 같은 이유로, 길이가 100인 데이터가 추가된다고 해서 이 코드가 틀리게 된다는 보장 또한 없습니다.

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