프로그래머스)완주하지 못한 선수

minji jeon·2022년 7월 18일
0

알고리즘

목록 보기
16/29
post-thumbnail

1.문제

수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다.

마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요.

2.접근

사실 이문제는 접근하기 전에 답을 알아버려서 쉽게 풀었지만 몰랐다면
접근하는데 어려움이 있었을거 같다.
우선 각각의 배열의 값이 맞는지 검토를 해야 한다.
두 배열의 값이 각각 다른 순서로 배치되어 있을 터이니 sort함수로 정렬을 해줘야겠구나 라고 생각했다. 그리고 두 배열의 값이 일치하지 않는 value를 반환하는 함수를
모든 배열을 돌려야 하니
filter함수로 배열안에 값을 거를수도 있을거 같다.
혹은 foreach함수로 배열을 합쳐서

3. 내답

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

배열을 모두 오름차순으로 정렬 시킨뒤
반복문을 돌면서 두 배열의 값이 다를 경우 그 값을 리턴하도록 하였다.

foreach는 시도하였으나 그러면 i값을 을 수가 없기때문에 실패....

profile
은행을 뛰쳐나와 Deep Dive in javascript

0개의 댓글