Programmersがフルコースを走っていない選手(javascript)



▼▼♂▼実行コード

  • まず順序比較のためにparticpantとcompletion配列をsort()を用いて昇順ソートした.
  • の次の参加者の数を繰り返し尋ねることにより,参加者の配列の値が完了した値にあるかどうかを比較した.
  • function solution(participant, completion) {
        var answer = '';
        const all = participant.length; // 전체 참가자의 수
        participant.sort(); // 비교를 위해 정렬
        completion.sort();  // 비교를 위해 정렬
        
        for(let i=0;i<all; i++){
            if(participant[i] != completion[i]){
                answer = participant[i];
                 return answer;
            }
        }
        //return answer; 을 여기에 넣으면 중복되는 값을 못 받아오는 듯 하다
    }

    ▼▼▼♂▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼他人の草

    //http://yoonbumtae.com/?p=3578
    function solution(participant, completion) {
        
        const obj = {}
        
        for (let p of participant) {
            obj[p] = obj[p] ? obj[p] + 1 : 1
        }
        for (let c of completion) {
            obj[c] -= 1
        }
        for (let key in obj) {
            if (obj[key] == 1) {
                return key
            }
        }
    }
  • 上の解答では、objというオブジェクトが生成され、参加者の配列を巡回し、参加者をオブジェクトキーとして登録し、参加者リストの各存在に1を加算する.
  • は、次いで、完了配列において、完了者リスト上のゲスト変数において、再び−1である.
  • の前の2つの過程を経て、完走は0で、完走できないのは1以上です.