ploffer11   5년 전

아래 코드로 AC를 받았습니다.

잘보면 배열 밖으로 나가는지 체크하는 부분이 없습니다.

배열크기도 100*100밖에 안되므로 아마 예제 케이스에 좀 커다란 수만큼 이동했을 때 코드가 제대로 작동하는지 체크하는 케이스가 없는 것 같습니다.

본 문제의 입력조건에는

입력의 첫 번째 줄에는 게임 구역의 크기 N이 주어집니다. (2 ≤ N ≤ 64) 입력의 두 번째 줄부터 마지막 줄까지 게임판의 구역(맵)이 주어집니다. 게임판 위의 숫자는 모두 0이상의 정수입니다. 게임판의 승리 지점(오른쪽 맨 아래 칸)에는 -1이 쓰여져 있습니다.

이 써있으며

문제 규칙에서

  1. ‘쩰리’는 가로와 세로의 칸 수가 같은 정사각형의 구역 내부에서만 움직일 수 있다. ‘쩰리’가 정사각형 구역의 외부로 나가는 경우엔 바닥으로 떨어져 즉시 게임에서 패배하게 된다.

라고 써있습니다.

이런 조건으로는,
3
99999999999999999 99999999999999999  99999999999999999 
99999999999999999  99999999999999999  99999999999999999
99999999999999999  99999999999999999   -1

같은 케이스로 우리의 코드에 오버플로우를 유발하지 않을 것임을 확신할 수 없습니다.

물론, 제 코드 같은 경우 굳이 저렇게 안하고
3
9999 9999 9999
9999 9999 9999
9999 9999 -1 
정도의 케이스만 넣어도 배열크기를 초과해 런타임에러를 받습니다.

입력으로 들어오는 수에 제대로된 범위를 명시해주시거나, 테스트케이스를 추가해주세요.

adfsfsf   5년 전

게임판 위의 숫자는 모두 0이상의 100 이하의 정수이며

라고 명시되어 있습니다. 즉, 해당 케이스는 존재할 수 없습니다.

ploffer11   5년 전

그렇다고 하더라도 테스트 케이스가 약합니다.

제 코드같은 경우

3

100 100 100

100 100 100

100 100 -1

테스트케이스만 들어와도 런타임에러가 뜹니다

adfsfsf   5년 전

그렇네요. 33, 37번 줄에 배열 밖인지 확인하는 코드를 넣지 않았음에도 통과되었다면 문제가 있는 것 같습니다.

startlink   5년 전

재채점했습니다.

startlink   5년 전

재채점했습니다.

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