aaa   1년 전

채점시 입력되는 N,M,H가 100을 넘는거 같은데

다른 분들은 어떤가요?

lll4592   1년 전

array index bound를 체크하지 않은 채로 배열 사이즈를 100으로 잡아서 런타임에러가 뜨신게 아닐까요
저는 a[100][100][100]으로 했는데 맞았네요

aaa   1년 전

흠 .. 제가 뭔가 잘못한거 같네요.. ㄷ

그리고 궁금한게

절취선 표시 위의 소스는 정답처리되고

아래 소스는 작동이 안되네요..

두개가 무슨 차이 일까요?

pichulia   1년 전

지금 코드를 보고왔는데...음...


위 아래 코드는 똑같이 동작하긴 합니다. 하지만 저 코드 밖에서 생긴 문제네요...


만약 x가 0이 된다면 어떻게 될까요? map[][x-1][] 부분에서 배열 인덱스에 음수가 들어가게 됩니다...

배열에서 음수의 인덱스를 참조하는 행위는 알 수 없는 오류를 일으켜서 동작을 꼬이게 하고 런타임에러나 하이젠버그(실행할 때마다 결과가 달라지는 버그), 슈뢰딩거의 버그 등을 유발하는 원인이 되지요.. 지금 마지막으로 제출한 소스코드가 맞은 이유는... 우연히 맞은거같네요...


입력값의 범위를 잘 파악해서 배열의 범위를 벗어난 메모리를 참조하지 않게 조심, 또 조심해야합니다!!

aaa   1년 전

감사합니다~

말씀대로 이렇게 고치니까 되는군요.

aaa   1년 전

제가 이때까지 처음에 0을 받을때 2나 -1로 초기화를 했었는데

이제부터는 범위 이내로만 받아야 겠네요..

이때까지 우연히(?) 맞은거 같습니다..

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