function solution(topping) {
let result = 0;
const older = {};
let olderCnt = 0;
const younger = {};
let youngerCnt = 0;
topping.forEach((t) => {
older[t] = (older[t] || 0) + 1;
if (older[t] === 1) ++olderCnt;
});
topping.forEach((t) => {
younger[t] = (younger[t] || 0) + 1;
older[t] = older[t] - 1;
if (younger[t] === 1) ++youngerCnt;
if (older[t] === 0) --olderCnt;
if (olderCnt === youngerCnt) ++result;
});
return result;
}
처음에 그냥 Set이랑 slice 했다가 당연히 시간 초과...
사람들 힌트를 참고해서 풀었다.
원소의 개수가 백만 개? => O(n) 풀이를 생각하자