ziz1945   2년 전

코드 상 제가 이해하지 못하는 부분이 있는것 같아 질문드립니다

문제의 입력과 출력은 문제 없이 나오긴 하는데 자꾸 틀리네요..

숨겨진 고수님들의 조언이 절실히 필요합니다..

ilapie   2년 전

올리신 코드 돌려보니 deque에 front() 에러나오고, 예제 입력3 다른 값 나오길레 에러난 부분 찾아봤는데

1) Line:69 사과의 위치와 뱀의 머리 좌표 비교하실때 [0]과 [0]을 비교하다가, 뒷부분은 [0]과 [1]을 비교하네요

 if(apples[i][0] == snake.front()[0] && apples[i][0] == snake.front()[1])

'apples[i][0] == snake.front()[1]'


2) Line 78~92 보시면 시간에 따라 방향 설정하는 부분인데

만약 프로그램이 끝나기 전에 이미 방향 전환 명령이 끝나서 time이 empty 한 경우 가 있을 수 있는데

이 상황에서 if(cnt == time.front().first) 명령을 수행한다면 비어있는 데크에서 front()함수를 호출했으니 오류가 발생하겠네요.


이 두 부분만 손보시면 로직은 정상적인거 같아요! 

ziz1945   2년 전

오오

말씀해주신 내용을 보고 코드를 자세히 보니 'apples[i][1] == snake.front()[1]' 로 바꿔야 했군요!

그리고 if(!time.empty())를 감싸니 정상적으로 작동했습니다!

감사 또 감사드립니다~!! ilapie님 덕분에 막힌 모세혈관이 하나 뚫렸습니다

👍👍

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