[プログラマー]完走できなかった選手
1.問題解きに悩む
2.方法1-hashMapを無効にする
import java.util.Arrays;
class Solution {
public String solution(String[] participant, String[] completion) {
Arrays.sort(participant);
Arrays.sort(completion);
int i;
for(i = 0; i < completion.length; i++){
if(!participant[i].equals(completion[i])){
return participant[i];
}
}
return participant[i];
}
}
=>自動実行参加者の最後の要素は
3.方法2-hashMapの使用
import java.util.HashMap;
class Solution {
public String solution(String[] participant, String[] completion) {
String result = "";
HashMap<String, Integer> hashMap = new HashMap<>();
for(String p : participant){
hashMap.put(p, hashMap.getOrDefault(p, 0) + 1);
}
for(String c : completion){
hashMap.put(c, hashMap.get(c) - 1);
}
for(String key : hashMap.keySet()){
if(hashMap.get(key) != 0){
result = key;
break;
}
}
return result;
}
}
4.学んだこと
getOrDefault(Object Key,V defaultValue):見つかったキーが存在する場合は見つかったキーの値を返し、存在しない場合はデフォルト値を返します
String[] arr1 = {"qwe", "asd", "zxc", "qwe"};
String[] arr2 = {"qwe", "asd", "zxc"};
Map<String, Integer> map = new HashMap<>();
for(String a : arr1) map.put(a, map.getOrDefault(a, 0) + 1);
System.out.println(map);
// {qwe=2, asd=1, zxc=1}
質問元:https://programmers.co.kr/learn/courses/30/lessons/42576Reference
この問題について([プログラマー]完走できなかった選手), 我々は、より多くの情報をここで見つけました https://velog.io/@hoehenflug/알고리즘-연습-프로그래머스-완주하지-못한-선수テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol