TIL 12/23

드립이 블로그·2022년 12월 23일
0

TIL

목록 보기
37/80

드디어 어제 못 풀던 문제를 풀었다.
어제는 list를 교집합 시킨 후,

listA.size() + listB.size() + listC.size()

의 값을 answer에 집어넣었다.
그랬더니 3개 모두 겹치는 경우 값이 달라지는 문제가 생겨서 if문으로

if(listA.retainAll(listB) && listB.retainAll(listC)){
	listA.retainAll(listB);
    listB.retainAll(listC);
    overlap = listA + listB
}

를 추가 한 후에 answer에서 overlap을 빼주면 해결 될 줄 알았는데, 한문제가 오답인 상황이 계속 되었다.
그 상황이 해결이 되지 않아 팀원분들께 물어본 결과,
교집합 한 list의 크기를 재지 말고, list를 set에 담으면 중복이 사라지니까 set을 써보라고 했다.

그래서

listA.addAll(listC);
listA.addAll(listB);

로 listA에 몰아 넣은 후에

Set<Integer> set = new HashSet<>(listA);

로 중복을 제거 한 후에 set을 리턴 했더니 문제가 말끔하게 해결되었다.
역시 물어보면 모르는게 없는 팀원분들이다.
오랫동안 못풀고 있던 문제를 해결해서 기분이 좋았다.
이 문제를 풀고나니 다른 문제는 생각보다 수월하게 풀렸다.
한문제를 더 풀고, 한문제는 푸는 도중이다.
https://school.programmers.co.kr/learn/courses/30/lessons/120866
이 문제를 푸는 도중에 ArrayIndexOutOfBoundsException이 떠서 해결중이다.
이것만 해결하면 아마 실행이 되지 않을까 싶다.

0개의 댓글