본문 바로가기

자료구조&알고리즘/알고리즘-문제풀이

[프로그래머스-Level1] 완주하지 못한 선수

1. 첫번째 코드 : 효율성 테스트에서 통과하지 못함

- 정확성 테스트는 통과 했으나 효율성 테스트에서 통과하지 못함

- participant에 completion element가 존재하는지 확인 한 후 participant에서 제거하는 로직이 이중for문 효과를 주어서 효율적으로 작동하지 않은 듯 싶다

function solution(participant, completion) {
    let answer = '';

    completion.map(comElement => {
        if (participant.includes(comElement)) {
            participant.splice(participant.indexOf(comElement), 1);
        }
    });

    answer = participant.join('');
    return answer;
}

 

2. 두번째 코드 : 정확성/효율성 테스트 통과

- 두 개의 리스트를 정렬 한 후 같은 인덱스에서 다른 string이 존재하면 그 element가 정답

function solution2(participant, completion) {
    let answer = '';

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

    for (let i = 0; i < participant.length; i++) {
        if (participant[i] !== completion[i]) {
            answer = participant[i];
            break;
        }
    }

    return answer;
}
반응형