
문제 해석

처음에 내생각
- 예전에 풀던 문제에서
- two point 으로 문제를 푸는건가? 생각을 했다.
- 하지만 이 count 하는데 있어 시간 문제가 꼭 발생할것이고. 이걸 효울적으로 어떻게 해결하는게 좋은가??? 생각을 하다가 답지를 봤다.
나의 코드 & 남의 코드
function solution(gems) {
//길이를 구하는 문제. 내가 생각한 방법이 틀렸다.
const gems_length= new Set( gems).size;
let map_gems= new Map();
let answer=[1,gems.length];
// default 길이 .. 나중에 비교할거리
gems.forEach((el,index)=>{
map_gems.delete(el);
// 거리를 지우는거
map_gems.set(el,index+1);
//추가하는거
if(map_gems.size==gems_length){
// 업데이트
const distance= [map_gems.values().next().value,index+1];
if(answer[1]-answer[0] > distance[1]-distance[0]){
//일때는
answer=distance;
}
}
})
return answer;
}