2206번 - 벽 부수고 이동하기
일단 문제는 맞혔습니다.
아래 코드를 맞았던 코드와 틀렸던 코드를 둘 다 올렸습니다.
두 코드의 차이점은
라인 33과 라인 73에서,
cnt -= 1을 한 뒤에 큐에 (cnt, nx, ny)를 넣어주느냐,
아니면 바로 큐에 (cnt-1, nx, ny)를 넣어주느냐의 차이밖에 나지 않습니다.
그리고 그 차이가 "틀렸습니다" 와 "맞았습니다"를 판가름합니다.
실제로,
5 50000011101000000111100010
을 넣어보면 두 코드의 답은 다르게 나옵니다.
(틀렸습니다 코드 -> -1, 맞았습니다 코드 -> 9)
문제는,
두 개의 차이가 대체 뭔지 모르겠습니다.
cnt-1을 바로 넣어주나, cnt -= 1을 하고 cnt를 넣어주나 차이가 없지 않나요?
아무리 찍어봐도 cnt -= 1을 하고 나서도 0이 들어가는데....
이게... 대체.... 왜 그런걸까요....ㅠㅠ
질문 올리자마자 뭐가 문제인지 알았습니다.
cnt -= 1을 하면 for i in range(4) 문 안에서 cnt가 쭉 0으로 남는군요.
이런 기본적인 걸 떠올리지 못하다니,
역시 새벽의 힘은 대단합니다.
댓글을 작성하려면 로그인해야 합니다.
ikarus101 3년 전
일단 문제는 맞혔습니다.
아래 코드를 맞았던 코드와 틀렸던 코드를 둘 다 올렸습니다.
두 코드의 차이점은
라인 33과 라인 73에서,
cnt -= 1을 한 뒤에 큐에 (cnt, nx, ny)를 넣어주느냐,
아니면 바로 큐에 (cnt-1, nx, ny)를 넣어주느냐의 차이밖에 나지 않습니다.
그리고 그 차이가 "틀렸습니다" 와 "맞았습니다"를 판가름합니다.
실제로,
5 5
00000
11101
00000
01111
00010
을 넣어보면 두 코드의 답은 다르게 나옵니다.
(틀렸습니다 코드 -> -1, 맞았습니다 코드 -> 9)
문제는,
두 개의 차이가 대체 뭔지 모르겠습니다.
cnt-1을 바로 넣어주나, cnt -= 1을 하고 cnt를 넣어주나 차이가 없지 않나요?
아무리 찍어봐도 cnt -= 1을 하고 나서도 0이 들어가는데....
이게... 대체.... 왜 그런걸까요....ㅠㅠ