기록양식 (TIL)
1. 사용 개념
2. 의문점 or 문제
3. 시도해 본 것들(+응용) or 삽질
4. 해결
5. 알게 된 점(회고)
HashSet
은 중복을 허용하지 않는 데이터 구조. 즉, 동일한 이름을 가진 참가자가 여러 명 있을 경우 HashSet은 그들 중 하나만 저장하기 때문에 HashSet을 사용하면 동일한 이름을 가진 참가자를 구별불가반면에
HashMap
은 키-값 쌍을 저장하는 데이터 구조. 이 경우, 참가자의 이름을 키로 사용하고, 해당 이름의 참가자 수를 값으로 사용 가능. 이렇게 하면 동일한 이름을 가진 참가자를 구별
class Solution {
public String solution(String[] participant, String[] completion) {
String answer = "";
Set<String> str = new HashSet<String>();
for(String s : completion){
str.add(s);
}
for(int i=0; i<participant.length; i++){
if(!str.contains(participant[i])){
answer = participant[i];
}
}
return answer;
}
}
일전에 풀었던 형식의
set
을 사용해서 풀려고 했으나 , 동명이인 구별 불가
import java.util.*;
class Solution {
public String solution(String[] participant, String[] completion) {
String answer = "";
HashMap<String, Integer> map = new HashMap<>();
for (String player : participant)
map.put(player, map.getOrDefault(player, 0) + 1);
for (String player : completion)
map.put(player, map.get(player) - 1);
Iterator<Map.Entry<String, Integer>> iter = map.entrySet().iterator();
while(iter.hasNext()){
Map.Entry<String, Integer> entry = iter.next();
if (entry.getValue() != 0){
answer = entry.getKey();
break;
}
}
return answer;
}
}
hashmap
의 개념과 구조를 파악하지 못해, 구글링과 검색을 통해 작성 > 구조만 먼저 이해하는 식으로 진행