나의 첫번째 제출 코드 오답.
function solution(participant, completion){
let answer = participant;
completion.forEach((val,idx) => {
participant.splice(participant.indexOf(val),1)[0]
});
answer = participant[0]
return answer;
}
조급하게 이어진 시도들에서도 반복을 여러번 쓰는 for + 탐색() + splice로 데이터 삭제하는 방법을 버리지 못했다.
사실 뭐가 문제인지 잘 몰랐다.
나의 두번째 제출 코드 오답.
function solution(participant, completion){
let answer ='';
for(let i of completion){
participant.splice(participant.indexOf(i),1)[0];
}
answer = participant[0]
return answer;
}
질문 목록을 보니 내 동지들이 많았다.
그리고 어느 분께서 indexOf, for문을 쓰면 찾을 때까지 반복+ 끝까지 반복이라 효율이 떨어진다.
정렬을 하고나면 반복문 사용 줄일 수 있다는 거의 정답을 알려주셔서ㅎ.
수정 후 통과된 나의 정답. 정렬을 하면 굳이 자르지 않아도 됐었다.
function solution(participant, completion){
participant.sort();
completion.sort();
let answer = participant.find((elem,idx) => { if(elem !== completion[idx]) return elem; });
return answer;
}
그 외, reduce를 써서 해결한 사람도 있었는데 reduce는 아직도 내게 서툰 부분이라 가져와 봄.
function solution(participant, completion) {
let dic = completion.reduce((prev, val) => {
return prev[val] = prev[val] ? prev[val]+1 : 1 , prev
},{});
return participant.find(t=> {
if(dic[t]) dic[t] = dic[t]-1;
else return true;
});
}
아... Lv1 문제라는데 겨우 통과라니 눈물난다 ㅠㅠ.....
'Web > Algorithm' 카테고리의 다른 글
2019 카카오 개발자 겨울 인턴십) 크레인 인형뽑기 게임 (0) | 2020.12.04 |
---|---|
[프로그래머스 > 해시] 베스트 앨범 (0) | 2020.06.23 |
[ 프로그래머스 > 정렬 ]H-Index (0) | 2020.04.25 |
[ 프로그래머스 > 해시] 위장 (0) | 2020.04.23 |
비트 카운팅 알고리즘 (0) | 2020.02.01 |