[javascript]Programmers Hashlevel 1を完走しなかった選手


質問する



[Programmers]Hashlevel 1を完走しなかった選手

チェックポイント

  • 繰り返し検査
    array.include()関数は解析を簡略化します.
    同名の人の制限事項が困難に迫っている可能性がある.
    そのため、重複検査に工夫を凝らし、重要な点を見逃したような気がします.
  • 解答#1-重複文の使用


    👉ツールバーの👈繰り返し比較できる簡単な方法があります.
    function solution(participant, completion) {
        participant.sort();
        completion.sort();
        
        for (let index = 0; index < participant.length; index++) {
            if (participant[index] !== completion[index]) {
                return participant[index];
            }
        }
    }

    プール#2-Hashの使用

  • Hash:Key Value対格納データのデータ構造
  • 、MapとObjectを含む
    function solution(participant, completion) {
        const participantObj = {}; // KEY: 참여자 이름, VALUE: 동명이인 수
        for (let name of participant) {
            participantObj[name] = participantObj[name] ? participantObj[name] + 1 : 1;
        }
    
        // 완주자 목록에 있는 경우 VALUE값 감소
        for (let name of completion) {
            participantObj[name] -= 1;
        }
    
        for (let name in participantObj) {
        	// completion의 길이는 participant의 길이보다 1 작으므로
            if (participantObj[name] === 1) {
                return name;
            }
        }
    }