[アルゴリズム]プログラマー-完走しなかった選手
2638 ワード
- 1. 問題の説明
多くのマラソン選手がマラソンに参加した.1人の選手を除いて、すべての選手がマラソンを完走した.
マラソンに出場する選手の名前と完走した選手の名前の並びが完成したら、完走していない選手の名前を返す解決関数を書いてください.
2.制限
マラソンに出場する選手は1人以上10万人以下だ.
完了長さは参加者の長さ1より小さい.
参加者の名前には、少なくとも1つまたは20個の小文字が含まれています.
参加者は同名であってもよい.
3.解答
Java HashMap libraryの使用
getOrDefault
getOrDefault(Object key, V DefaultValue)
戻り値
ハッシュマッピングを使用して、参加者に存在する名前の数を保存します(同じ名前のため).
完了リストで、名前(キー)にマップされた値(値)から1を減算します.
->完了者の最終値は0
リストを迂回して値が0以外の名前を検索して返します
4.コード
import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;
class Solution {
public String solution(String[] participant, String[] completion) {
String answer = "";
HashMap<String, Integer> list = new HashMap<>();
<br>
for(int i = 0; i<participant.length;i++) {
list.put(participant[i], list.getOrDefault(participant[i], 0)+1);
}
<br>
for(int i = 0; i<completion.length;i++) {
list.put(completion[i], list.get(completion[i])-1);
}
<br>
for(int i = 0;i<list.size();i++){
if(list.get(participant[i])!=0) {
answer = participant[i];
}
}
return answer;
}
}
Reference
この問題について([アルゴリズム]プログラマー-完走しなかった選手), 我々は、より多くの情報をここで見つけました https://velog.io/@yeju6540/알고리즘-프로그래머스-완주하지-못한-선수テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol