본문 바로가기
JAVA 코딩 알고리즘 연습/프로그래머스

프로그래머스 - 완주하지 못한 선수 / JAVA (자바) 코딩 알고리즘 연습

by easpop 2022. 12. 15.
728x90
반응형
반응형

해시를 사용하여 푸는 문제~~

문제에 대해서 구글링 하다가 getOrDefault을 쓴 코드를 찾아서 왜 쓰는지에 대한 추가적인 구글링을 통해 정리한 것은,

HashMap을 쓸 때 key값이 중복되면 value가 그냥 덮어쓰기 되어버리니, 중복될때마다 값을 추가하고 싶으면 쓰면 된다!

유용한 메소드 같으니 잘 외워되야 될 듯~~!

get 메소드는 key값이 매핑된 value 값을 리턴함(API 문서 참고하여 해석함).

그리고 keyset은, 말 그대로 이 map에 포함된 key들의 set를 리턴한다고 함(API 문서 참고해서 해석했음)

잘 외워두면 유용하게 쓸 수 있을 것 같다!

get.key가 해당 key의 value값을 가져오는 거라서 헷갈렸는데, 5번 넘게 똑같이 써보면서 외운듯ㅋㅋㅋㅋ

import java.util.HashMap;

class Solution {
    public String solution(String[] participant, String[] completion) {
        String answer = "";
        
        HashMap<String, Integer> a = new HashMap<>();

		for (String str1 : participant) {
			a.put(str1, a.getOrDefault(str1, 0) + 1);
		}
		
		for (String str2 : completion) {
			a.put(str2, a.get(str2) -1);
		}
		
		for (String str1 : a.keySet()) {
			if(a.get(str1) != 0) {
				answer = str1;
				break;
			}
		}
        
        return answer;
    }
}

 

728x90
반응형

댓글