코드
public String solution(String[] participant, String[] completion) {
HashMap<String, Integer> hash = new HashMap<String, Integer>();
for(String s : participant) {
if(hash.containsKey(s)) {
hash.put(s, hash.get(s)+1);
}else {
hash.put(s, hash.getOrDefault(s, 1));
}
}
for(String s : completion) {
if(hash.containsKey(s)) {
hash.put(s, hash.get(s)-1);
}
}
for(String s : hash.keySet()) {
if(hash.get(s) == 1) {
return s;
}
}
return "";
}
public static void main(String[] args) {
Solutaion3 sol = new Solutaion3();
System.out.println(sol.solution(new String[]{"mislav", "stanko", "mislav", "ana"},
new String[]{"stanko", "ana", "mislav"}));
}
설명
참가자 중 한명만 완주를 못하는 경우이다.
참자가 중복이 있을 수도 있으므로 해당 Map에 중복된 key가 있을 경우 값을 증가시킨다.
hash.containsKey("참가자")를 이용하여 중복된 키값이 있을 경우
hash.put("참가자", hash.get("참가자") +1); // 중복된 키값+1을 해준다.
중복 되지않는 참가자는 1값을 부여하기위해
hash.put("참가자", hash.getOrDefault("참가자", 1)); // 키가 비어있을 경우 값으로 1을 지정해준다.
이후 hash에 담겨있는 값과 완주자를 비교해주면 된다.
hash.getOrDefalut(key, value); // key가 있을 경우 key의 값을 가져오고 없을경우 value를 리턴한다.
ex) hash.put("사과",3);
hash.getOrDefalut("파인애플", 3); // hash에 파인애플이 없으므로 3을 반환
[프로그래머스][Level1][(탐욕법)체육복] (0) | 2021.03.09 |
---|---|
[프로그래머스][Level1][(2019 카카오)크레인 인형뽑기 게임] (0) | 2021.03.08 |
[프로그래머스][Level1][(완전탐색)모의고사] (0) | 2021.03.07 |
[프로그래머스][Level1][무슨 요일인가] (0) | 2021.03.07 |
[프로그래머스][Level1][(정렬)K번째수] (0) | 2021.03.07 |