rjsdn01024   3년 전

while 문에서 계속 무한루프가 돕니다.

tmpL에 마지막값을 빼서 처음에 넣을 때 오류가 나는 것 같은데 이유를 모르겠습니다..ㅜㅜ

ehdghk154   1년 전

직접 비슷한 방식으로 해보니 Deque는 tmpF = dq 처럼 쓰게 되면 C의 포인터? 처럼 tmpF가 dq를 가리키는 방식으로 작동하는 것 같네요.

tmpF만 수정하고 tmpL을 출력해보니 tmpF에서 수정한 내용으로 들어가 있습니다. 하나를 수정하면 다른 한 개도 같이 수정된 내용으로 들어갑니다.

tmpF.addAll(dq); 로 사용하니 ConcurrentModificationException 가 발생했고, tmpL, tmpF에 이미 dq가 들어있는 상태에서 다음 번에 또 추가하니 예외가 발생한 것 같습니다.

각 숫자를 찾을 때마다 새로 임시 Deque을 받도록 tmpF와 tmpL을 for문 안쪽으로 넣고 새로 선언하니 잘 작동했습니다.

tmpF와 tmpL을 다시 선언하는 것부터 해보시면 될 것 같네요.

그리고 pop()과 poll()은 둘 다 앞에서 제거합니다.

다 쓰고 나니 1년 전 이였네요 ㄷㄷ; 덕분에 저도 찾아보며 공부했습니다 ㅎㅎ

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