직접 비슷한 방식으로 해보니 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년 전 이였네요 ㄷㄷ; 덕분에 저도 찾아보며 공부했습니다 ㅎㅎ
rjsdn01024 3년 전
while 문에서 계속 무한루프가 돕니다.
tmpL에 마지막값을 빼서 처음에 넣을 때 오류가 나는 것 같은데 이유를 모르겠습니다..ㅜㅜ