[Programmers] 완주하지 못한 선수

지냐킴·2022년 7월 23일
0

코딩테스트

목록 보기
20/28
post-thumbnail

✅문제 설명

수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다.
마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요.

  • 제한사항
    마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다.
    completion의 길이는 participant의 길이보다 1 작습니다.
    참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다.
    참가자 중에는 동명이인이 있을 수 있습니다.

  • 입출력 예
    participant completion return
    ["leo", "kiki", "eden"]["eden", "kiki"] "leo"
    ["mislav", "stanko", "mislav", "ana"]["stanko", "ana", "mislav"] "mislav"

  • 입출력 예 설명
    예제 #1
    "leo"는 참여자 명단에는 있지만, 완주자 명단에는 없기 때문에 완주하지 못했습니다.
    예제 #2
    "mislav"는 참여자 명단에는 두 명이 있지만, 완주자 명단에는 한 명밖에 없기 때문에 한명은 완주하지 못했습니다.

✅ 내 문제풀이

function solution(participant, completion) {  
    participant.sort();
    completion.sort();
  // sort()함수 사용해 배열 해준다
    
    for (let i = 0; i<participant.length; i++){
      // 0부터 비교하면서 포문을 돌려준다
        if(participant[i] !== completion[i]){
          // 둘이 일치하지 않는다면 
            answer = participant[i];
          // 참가자 배열의 요소 출력
            break;
          // 멈춘다 (동명이인이 있을 수도 있으니까)
        }             
    }
    return answer;
}

array.sort()

배열의 요소를 적절한 위치에 정렬한 후 그 배열을 반환합니다(오름순으로)

✅ 다른 풀이 방법

var solution=(_,$)=>_.find(_=>!$[_]--,$.map(_=>$[_]=($[_]|0)+1))

var solution=(participant,completion)=>participant.find(name=>!completion[name]--,completion.map(name=>completion[name]=(completion[name]|0)+1))

천잰가 어디 학원이라도 다니나..?

profile
코린이일기

0개의 댓글

관련 채용 정보