[algorithm/programmers] 완주하지 못한 선수

stella·2020년 6월 12일

algorithm

목록 보기
4/7

완주하지 못한 선수

문제

완주하지 못한 선수

풀이

function solution(participant, completion) {   
    let answer = '';  
    const sortP = participant.sort();
    const sortC = completion.sort();
    
    for(var i = 0, len = sortP.length; i <len; i++){
        if(sortP[i] !== sortC[i]){
            answer = sortP[i];
            break;
        }
    }
    
    return answer;
    
}
  1. 참가자 목록(participant) 완주자목록(completion)의 차이는 1개뿐 , 즉 1명만 완주못함
  2. 일단 정렬해서 값은 인덱스에 같은값이 들어있는지 보면됨
  3. 찾으면 반복 중단.

코드 변경 - 간단하게 줄여보았다.

function solution(participant, completion) {    
    completion.sort();
    return participant.sort().find((e, i) => e !== completion[i]);
}	
  1. sort메소드는 원본배열을 변경하므로 변수안써버렸음 (실무에선 그럼 안되겠지만 ㅋㅋ)
  2. 또한 메소드 체인이 가능하므로 sort와 find 배열 메소드를 통해 바로 리턴.
  3. find 메소드는 조건에 해당하는 엘리먼트를 바로 리턴하고 반복을 종료한다. 맵 처럼 끝까지 돌 필요가 없으므로 사용
profile
겔름뱅이

0개의 댓글