import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.StringTokenizer;
class Solution{
public String solution(String[] participant, String[] completion) {
String answer = "";
HashMap<String, Integer> h1 = new HashMap<String, Integer>();
for(String player: participant) {
h1.put(player, h1.getOrDefault(player, 0) + 1);
}
for(String player: completion) {
h1.put(player, h1.get(player) -1 );
}
for (String key : h1.keySet()){
if (h1.get(key) != 0) {
answer = key;
break;
}
}
return answer;
}
}
클래스, static main 구조로 작성해야 하는줄 알고 초반에 계속된 컴파일 오류에 오래 걸렸다. 백준처럼 풀코드로 작성하는 것이 아닌 알고리즘 부분만 작성해야 함을 알았다.
HashMap 을 이용하여 key, value 형태로 저장되게 하였으며, 참가자에서 완주자를 제거하는 알고리즘이다.Map의 인터페이스를 상속하고 있기에 Map의 성질을 가지고 있다. Map 이란 key & value로 구성된 객체를 저장하는 자료구조이다.
(1) entrySet / keySet
entrySet은 키, 밸류 모든 값들을 순회할 때 사용되고 keySet은 키 값만 모두 순회할 때 사용된다.
(2) hash get / put
hash.get(key) 를 통해 해당 key에 대한 밸류를 출력한다.
hash.put(key) 를 통해 해당 key에 대한 밸류를 입력한다.