class Solution {
public String solution(String[] participant, String[] completion) {
HashMap<String, Integer> hash = new HashMap<String, Integer>();
for(String str : participant){
if(hash.containsKey(str)){ // hash에 참가자 있는 경우
// hash에 있는 참가자 +1
hash.replace(str,hash.get(str)+1);
}else{ // hash 참가자 없는 경우
hash.put(str,1);
}
}
for(String str : completion){
//완주한 선수를 hash에서 -1
hash.replace(str,hash.get(str)-1);
}
String answer ="";
for(String str : participant){
if(hash.get(str)==1){
answer = str;
break; // 완주하지 못한 선수는 1명이기때문에 반복문 종료
}
}
return answer;
}
}
배열로도 접근이 가능하지만 HashMap<key,value>를 통해 두가지를 묶을 수 있어서 내가 생각하기에는 배열로 접근하는 것보다 더 효율적인 접근인거 같다.