[로아투두] O(n^2) 문제 해결과 partitioningBy
·
Project/LOATODO
1. 오늘 발견한 문제MarketService.updateMarketItemList() 메소드를 보다가 뭔가 이상한 걸 발견했다.for (Market market : newMarketList) { // O(n) Optional find = oldList.stream() .filter(item -> item.getLostarkMarketId() == market.getLostarkMarketId()) .findFirst(); // O(m) 😱 // ...}for문 안에서 stream으로 또 순회하고 있었다. 전형적인 O(n²) 패턴이다.데이터가 1,000개면 1,000 × 1,000 = 1,000..