프로그래머스 #2
해시 - 완주하지 못한 선수
해시는 사실 처음 들어봤다
그냥 요령없이 풀어봤다
function solution(participant, completion) {
while(completion.length > 0){
const head = completion.shift();
const idx = participant.indexOf(head);
participant.splice(idx,1)
}
return participant[0];
}
ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
반복문 내에 indexOf나 splice 메소드를 사용하면서 시간복잡도가 늘어난 듯 하다.
function solution(participant, completion) {
const obj = {};
completion.forEach(el=>{
if(el in obj){
obj[el]++;
} else {
obj[el] = 1;
}
});
for(let el of participant){
if(obj[el]){
if(obj[el] !== 0){
obj[el]--;
} else {
return el;
}
} else {
return el;
}
}
}
배열을 조회하는 시간복잡도를 줄이기 위해 객체 키값을 통해 조회하도록 작성해보았다
다른 사람들 풀이를 보니 머리가 띵~하다 ㅋㅋㅋㅋ 정말 다양한 방법이 있구나..
Author And Source
이 문제에 관하여(프로그래머스 #2), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ntk100/프로그래머스-2저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)