성장에 목마른 코린이

(해시) 완주하지 못한 선수 220406 본문

코딩 테스트 준비/프로그래머스 level 1

(해시) 완주하지 못한 선수 220406

성장하는 코린이 2022. 4. 6. 01:42
728x90

나의 솔루션

function solution(participant, completion) {
    participant.sort();
    completion.sort();
    for (let i = 0; i < participant.length; i++) {
        if (participant[i] !== completion[i]) {
            return participant[i];
        }
    }
}

좋아요가 가장 많이 달린 솔루션

// 좋아요 제일 많이 달렸다고 좋은 솔루션이 아니구나.. ㅋㅋㅋㅋ
var solution=(_,$)=>_.find(_=>!$[_]--,$.map(_=>$[_]=($[_]|0)+1))

// 그래서 두번째 좋아요 많이 달린 솔루션 포스팅합니다 ㅎㅎ..
function solution(participant, completion) {
    /*
    for(let i in participant) {
        if(completion.includes(participant[i]) == false) return participant[i];
        completion.splice(completion.indexOf(participant[i]), 1);
    }
    */

    participant.sort();
    completion.sort();

    for(let i in participant) {
        if(participant[i] !== completion[i]) return participant[i];
    }
}

느낀점

저렇게도 풀 수 있구나.. 라고 느꼈고, 처음에 sort를 해주지 않아 안됬었는데 정렬을 먼저 해주고 나니 됬습니다.

ㅋㅋ 좋아요가 가장 많이 달린 솔루션 보고 엄청 웃었네요.

 

그리고 댓글에 for in 을 쓰면 성능을 하락시키는 주요 코드라고 합니다. 실제 테스트에서 성능 역시 채점 기준으로 캐쉬 방식보다 30%가량 성능이 늦게 측정된다고 하네요. 귀찮더라도 for (let i =0; i < arr.length; i++) 식으로 쓰라네요.

근데 왜 두번째로 좋아요가 많은지 참 신기합니다.

Comments