Notice
Recent Posts
Recent Comments
Link
«   2026/05   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Tags
more
Archives
Today
Total
관리 메뉴

yesolje

프로그래머스_고득점kit_해시_완주하지 못한 선수 본문

코딩테스트

프로그래머스_고득점kit_해시_완주하지 못한 선수

yesolje 2025. 2. 24. 14:53

풀이

import java.util.*;

class Solution {
    public String solution(String[] participant, String[] completion) {
        HashMap<String, Integer> hm = new HashMap<>();
        for(String p : participant){
            hm.put(p, hm.getOrDefault(p,0) + 1);
        }
        for(String c : completion){
            hm.put(c, hm.get(c) -1);
        }
        for(String k : hm.keySet()){
            if(hm.get(k) > 0){
                return k;
            }
        }
        return "";
    }
}

개념정리

 

HashMap

✔️ 데이터를 저장할 때 key 와 value 를 짝지어 저장하는 자료구조

✔️ 데이터를 저장할 때 key 값으로 해시 함수를 실행한 결과를 통해 저장 위치를 결정한다.

✔️ 데이터의 추가, 삭제, 검색이 빠르다.

✔️ key 값을 통해서만 검색이 가능하며, key 값은 중복될 수 없다.

 

HashMap 의 선언과 활용

import java.util.*;

class Solution {
    HashMap<String,Integer> hm = new HashMap<>();
	
    hm.put("홍길동", 1);
    
    String p = "홍길동";
    
    hm.put(p, hm.getOrDefault(p,0)); // 홍길동key 가 있으면 해당하는 value 값, 없으면 0을 리턴한다
    
    hm.get("홍길동") // result 1
}