맞습니다. 배열밖으로만 안넘치도록 관리만 잘하면 상관없겠죠.
하지만 28번째줄이나 40번째줄에선 그러지 못한거같네요
1113번 - 수영장 만들기
음수 인덱스 접근이라는게 어떤 값이 잡힐지가 사실 컴파일러의 운에 따르는지라...컴파일러를 C++로 바꿔서 제출하면 또 다르게 나올 가능성도 있습니다ㅋㅋㅋ
이번 문제의 경우 우연찮게 map 배열의 메모리가 다른 int변수 바로뒤에 할당되서 map [0][-1] 값과 map [-1][0]값이 모두 water보다 커지는 경우가 발생한.. 안타까운 경우네요..
그리고 1부터 시작한다고 딱히 안전한건 아닙니다... 가장 안전한건 0부터 시작하더라도 저런 음수인덱스 접근이 안생기도록 코드를 잘 짜는 것이 제일 안전합니다.
답변 감사합니다
좀더 주의깊게 코드를 짜도록 해야겠어요ㅋㅋㅋㅋㅋ
댓글을 작성하려면 로그인해야 합니다.
juhongkim2 7년 전
1.맵의 사이즈를 1<=y<=N, 1<=x<=M으로 받으면 ac
2.맵의 사이즈를 0<=y<=N-1, 0<=x<=M-1으로 받으면 틀립니다.
뭔 차이죠?
IsinRange()함수의 범위도
1.의 경우엔 (x<=0 || y<=0 || x>M || y>N)이면 0을 반환하도록
2.의 경우엔 (x<0 || y<0 || x>=M || y>=N)이면 0을 반환하도록
조절했는데도 1은 ac 2는 틀립니다.
어차피 x,y의 범위라는거 1부터 받던 0부터 받던 20부터 받던
배열 사이즈 안넘치고 맵 밖으로 나가는 부분만 잘 처리해주면 문제 없는거 아닌가요?