[プログラマー]完走できなかった選手
6695 ワード
完走していない選手
多くのマラソン選手がマラソンに参加した.1人の選手を除いて、すべての選手がマラソンを完走した.
マラソンに出場する選手の名前と完走した選手の名前の並びが完成したら、完走していない選手の名前を返す解決関数を書いてください.
マラソンに出場する選手は1人以上10万人以下. 完了長さは参加者長1より小さい. 参加者の名前は20文字を超えない. の参加者には同名の人がいる可能性があります.
最初にincludeメソッドを用いてコードを記述し,タイムアウトによりエラー処理される.😅 プロセスをどのように減らすかを考慮すると、sortメソッドを使用してソートし、他の要素を発見したときに値を取得することで問題を解決します.
他の人の解答から,Mapオブジェクトを利用してkeyに参加選手名,valueに+1を加え,完走したリストにMapオブジェクトに選手名があればvalue-1を返し,値が0より大きい選手名を返す.
問題の説明
多くのマラソン選手がマラソンに参加した.1人の選手を除いて、すべての選手がマラソンを完走した.
マラソンに出場する選手の名前と完走した選手の名前の並びが完成したら、完走していない選手の名前を返す解決関数を書いてください.
せいげんじょうけん
私の答え
function solution(participant, completion) {
let answer;
participant.sort();
completion.sort();
for(var i = 0; i < participant.length; i++){
if(participant[i] !== completion[i]){
answer = participant[i];
break;
}
}
return answer;
}
他人の解答
function solution(participant, completion) {
const map = new Map();
for(let i = 0; i < participant.length; i++) {
let a = participant[i],
b = completion[i];
map.set(a, (map.get(a) || 0) + 1);
map.set(b, (map.get(b) || 0) - 1);
}
for(let [k, v] of map) {
if(v > 0) return k;
}
return 'nothing';
}
P.S.
最初にincludeメソッドを用いてコードを記述し,タイムアウトによりエラー処理される.😅 プロセスをどのように減らすかを考慮すると、sortメソッドを使用してソートし、他の要素を発見したときに値を取得することで問題を解決します.
他の人の解答から,Mapオブジェクトを利用してkeyに参加選手名,valueに+1を加え,完走したリストにMapオブジェクトに選手名があればvalue-1を返し,値が0より大きい選手名を返す.
Reference
この問題について([プログラマー]完走できなかった選手), 我々は、より多くの情報をここで見つけました https://velog.io/@nulbo/프로그래머스-완주하지-못한-선수テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol