[学習アルゴリズム]完走しなかった選手


プログラマーLEVEL 1-完走していない選手(JavaScript)
👉 問題の説明
多くのマラソン選手がマラソンに参加した.1人の選手を除いて、すべての選手がマラソンを完走した.
マラソンに出場する選手の名前と完走した選手の名前の並びが完成したら、完走していない選手の名前を返す解決関数を書いてください.
👉 せいげんじょうけん
  • マラソンに出場する選手は1人以上10万人以下.
  • 完了長さは参加者長1より小さい.
  • 参加者の名前は20文字を超えない.
  • の参加者には同名の人がいる可能性があります.
  • 👉 あらかじめ想定する
    指定した2つの配列を並べ替えて比較します.
    👉 しょきかい
    function solution(participant, completion) {
        var answer = '';
        participant = participant.sort();
        completion  = completion.sort();
        for(var i in participant){
            if(participant[i] != completion[i]){
                answer = participant[i];
                break;
            }
        }
        return answer;
    }
    👉 結果と補足
    比較的簡単な問題
    しかし、改善されたfor文(var...in...)シェイプがパフォーマンスを低下させる可能性があるという情報を理解した後、重複文を変更しました.
    また,重複文では,文法を中断するのではなく直ちに返すことで,コード記述を簡略化した.
    👉 最終回答
    function solution(participant, completion) {
        participant = participant.sort();
        completion  = completion.sort();
        for(let i = 0; i < participant.length; i++) {
            if(participant[i] != completion[i]){
                return participant[i];
            }
        }
    }