https://school.programmers.co.kr/learn/courses/30/lessons/42576

동명이인이 있는 경우를 처리하는 것이다."mislav"는 참여자 명단에는 두 명이 있지만, 완주자 명단에는 한 명밖에 없기 때문에 한명은 완주하지 못했습니다.
completion 정보 저장
stanko 삽입 (여기서 value값은 key에 해당하는 이름을 가진 사람수이다.)
| key | value |
|---|---|
| stanko | 1 |
ana 삽입
| key | value |
|---|---|
| stanko | 1 |
| ana | 1 |
mislav 삽입 .
| key | value |
|---|---|
| stanko | 1 |
| ana | 1 |
| mislav | 1 |
participant 정보다 hashMap에 포함된건지 확인
| key | value |
|---|---|
| stanko | 1 |
| ana | 1 |
| mislav | 1 |
현재 hashMap에는 mislav가 존재한다. 해당 참가자를 확인했으므로 hashMap에서 지워준다.
| key | value |
|---|---|
| stanko | 1 |
| ana | 1 |
현재 hashMap에는 stanko가 존재한다. 해당 참가자를 확인했으므로 hashMap에서 지워준다.
| key | value |
|---|---|
| ana | 1 |
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
class Solution {
public String solution(String[] participant, String[] completion) {
HashMap<String, Integer> map = new HashMap<>();
for (String s : completion) {
if(map.containsKey(s)) {
Integer value = map.get(s);
map.put(s, value+1);
}else {
map.put(s, 1);
}
}
String answer = "";
for (String s : participant) {
if(map.containsKey(s)) {
Integer value = map.get(s);
if(value.equals(1)) map.remove(s);
else map.put(s, value-1);
} else {
answer = s;
break;
}
}
return answer;
}
public static void main(String[] args) {
String[] participant = {"mislav", "stanko", "mislav", "ana"};
String[] completion = {"stanko", "ana", "mislav"};
System.out.println(new Solution().solution(participant, completion));
}
}