
여기서 중요한점은 갯수가 아니라 가지고 있는것들중 키 값을 카운트해서 공평하게 나눌수 있는가 아닌가 이다. 처음에는 left right 으로 이동하여 카운트 해볼까 햇으나 아무리해도 아닌거 같아서
해시테이블을 사용해서 차근차근 넣어보았다.

이렇게 [1,1,1,1,1] 인경우도 있으니 for문을 돌릴때 길이 -1 으로 설정해야한다.
자른다고 생각하면 몇가지 나오는것을 알수 있을것이다.

function solution(topping) {
var obh={};
for(var i=0; i<topping.length; i++){
if(!obh[topping[i]]){
obh[topping[i]]=1;
}
else{
obh[topping[i]]+=1;
}
}
var total_obh=Object.keys(obh).length;
var includ_obh=[];
var count=0;
for(var i=0; i<topping.length-1; i++){
obh[topping[i]]-=1;
if(obh[topping[i]]==0){
total_obh-=1;
}
if(!includ_obh.includes(topping[i])){
includ_obh.push(topping[i]);
}
if(total_obh==includ_obh.length){
count+=1;
}
}
return (count);
}
처음에 오류가 나서 내가 쓴 로직이 잘못된건가 싶었는데
자세히 보니 배열에 없는 경우에만배열에 넣어주고 object 값을 빼준다로 적어서
처음부터 하나씩 빼주 였다고 . 0 인경우에만 전체키값-=1 으로 해줘서 해결하였다.
로직이 같아도 if 문 잘못써서 틀렸던거였다. 잘봐야되겠다.