테스트 준비 중인데... 시험 시에 조건이 stdio.h 이외의 라이브러리를 사용할 수 없게 되어 있어서요(ㅠㅠ) 연습 삼아 직접 구현해 보는 중이에요.
혹시 큐 구현에 문제가 있는건가요?
7576번 - 토마토
큰 문제 몇 가지만 말씀드리자면,
@dmj03718 , @lolicon 님, 친절한 답변 감사 드립니다.
지적해 주신 사항들을 기반으로 아래와 같이 모두 수정해 보았습니다만, 여전히 반례를 찾지 못하고 있습니다.. 뭐가 잘못된건지 모르겠네요...ㅠㅠ
(분명 로컬에선 모든 반례와 기본입력이 정답으로 나오는데두요..ㅠㅠ)
(참고로, Queue 함수는 n과 m 을 한칸씩 써서 두칸을 한묶음으로 하여 직접 구현했습니다.)
보니까 Queue 배열에 한 번에 2개씩의 값 (행, 열)을 동시에 넣고 빼고 있는데, 이러면 1000000개의 원소로는 최대 50만 칸밖에 표현하지 못합니다.
배열 인덱스 관련된 부분은 뒤쪽 조건을 놓치기는 했는데, 그래도 여전히 안전하지는 않은 코드입니다. 예를 들어 n이 0인 상황에서 66번째 줄에 도달하면 무조건 Box[-1][m]을 보게 되는데, 이 부분은 배열의 할당 범위를 벗어난 곳이므로 곧바로 런타임 에러가 나도 이상하지 않습니다. 뒤에 n - 1 >= 0 이라는 조건이 있지만 이는 먼저 && 앞의 문장을 실행해서 그 결과가 참이면 실행하는 문장이므로, 여기가 실행되기 전에 먼저 잘못된 배열 인덱스에 접근할 경우 문제가 생길 수 있습니다. 순서를 바꿔줘야 합니다.
댓글을 작성하려면 로그인해야 합니다.
cpdim001 5년 전
예제 입력에서 돌려 '틀렸습니다' 가 나온 이후, 게시판에 올라와 있는 반례들을 모두 찾아 돌려 봤습니다.
로컬에서는 모두 정답이 나오는데 여기서는 계속 틀렸습니다가 나오네요.
이 이상 반례가 있는건가요 아니면 어디가 잘못된건가요... 고수님들 도와 주세요~~~ㅠㅠ
(참고로, Queue 함수는 n과 m 을 한칸씩 써서 두칸을 한묶음으로 하여 직접 구현했습니다.)