[#42576]ハッシュ走りきれなかった選手-JavaScript
6460 ワード
問題の説明
多くのマラソン選手がマラソンに参加した.1人の選手を除いて、すべての選手がマラソンを完走した.
マラソンに出場する選手の名前と完走した選手の名前の並びが完成したら、完走していない選手の名前を返す解決関数を書いてください.
せいげんじょうけん
I/O例
I/O例説明
例1
「leo」は参加者名簿に載っているが、フルコースを走る者名簿には載っていないため、フルコースを完走できなかった.
例2
「vinko」は参加者名簿に載っていたが、完走者名簿に載っていなかったため完走できなかった.
例#3
「誤導」は参加者リストに2人いたが、完走者リストには1人しかいなかったため、1人は完走しなかった.
に答える
まず
participant
配列を{key:value}としてcountする.参加者=[「誤導」、「stanko」、「誤導」、「ana」一時
{ mislav: 2, stanko: 1, ana: 1 }
completion
配列では、オブジェクト化されたobjList
に対応するキー値が存在するか、またはその値が0でない場合、countが減少する.objList
の全てのキー値のうち、0でない値のみが、完走していない選手名を返している.function solution(participant, completion) {
// key, value로 객체화
let objList = participant.reduce( (acc, name) => {
acc[name] = acc[name] ? acc[name]+=1 : 1;
return acc;
}, {});
completion.map( (name) => {
if(objList[name]) objList[name]-=1;
})
return Object.keys(objList).filter( name => objList[name] !== 0 )[0]
}
初期放出の時間的複雑さを考慮しないため、効率は0%である.📌 誤った解釈
function solution(participant, completion) {
let answer = '';
participant.map( name => {
const firstIndex = completion.indexOf(name);
if (firstIndex == -1) return answer += name;
completion.splice(firstIndex, 1);
});
return answer;
}
Reference
この問題について([#42576]ハッシュ走りきれなかった選手-JavaScript), 我々は、より多くの情報をここで見つけました https://velog.io/@jiseong/42576-해시-완주하지-못한-선수-JavaScriptテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol