My Space

반응형

코드
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을 반환

 

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading