
어제 런타임 오류와 온갖 테스트 실패를 맛보고 오늘은 이 문제에서 많은 사람들이 사용하는 stack을 이용하여 코드를 새로 갈아엎으려 했으나 어제 날린 시간이 아까워서 정확한 문제라도 찾자는 생각으로 코드를 좀 더 만져봤다.
일단 특정 테스트 케이스에서 문제가 발생하는데 어떤 케이스인지 알 수가 없기에 오류가 예측되는 케이스를 임시로 이것 저것 넣어보았다.
board의 크기가 커지다보면 생기는 오류가 있는가pick에 이미 존재 하는경우 기존의 숫자가 지워지지는 않는가1,2번을 가지고 테스트를 해보니 너무나도 당연하게 문제가 없었고 오랜 고민 끝에 3번의 오류를 생각해낼 수 있었다. 그리고 테스트를 해보는 순간 예상대로 기존의 값이 삭제되는 오류가 있었다.
숫자를 지우는 부분에서 remove(element)를 사용했더니 element에 해당하는 값이 이미 있을 경우 맨 앞에서부터 지워지는 것이었다. 따라서 해결 방법은 인덱스를 사용하는 것.
때마침 removeAt(index)라는 메소드를 알고 있었기에 적절한 인덱스만 찾아서 파라미터로 넣어주면 되었다. 적절한 값을 생각하다가 pick의 마지막 원소를 지우려는 것이기 때문에 pick.size()-1로 바꿔주었다.

테스트 고고

이틀간의 대장정이 끝났다... 역시 아직도 실력이 미흡하지만 이렇게 벽을 마주하고 해결해 봐야 얻는게 더 많고 배우는게 더 많을 것이라고 생각한다.