본문 바로가기
Java/Programmers

Hash - Level 1, 완주하지 못한 선수

by GLOWWW 2021. 1. 12.

프로그래머스...어렵다..
Hash, 해쉬란?--설명 이동.

import java.util.*;

class Solution {
    public String solution(String[] participant, String[] completion) {
        String answer = "";
        //해쉬맵 생성
        Map<String, Integer> map = new HashMap<String, Integer>();
        //for문으로 completion 배열을 돌려서 save변수에 저장해준다. 
        for(String save:completion){
            //map.getOrDefault로 내가 찾고자 하는 키가 있는지 없는지의 유무를 체크해준다.
            //없으면 기본값을 반환해주고, 있으면 +1을 해준다. 
            map.put(save,map.getOrDefault(save,0)+1);
        }
        //for문으로 participant 배열을 돌려서 save변수에 저장해준다.
        for(String save:participant){
            //map.containsKey를 사용하여 save에 키값의 유무를 확인한다.
            if(map.containsKey(save)){
                //키값이 존재하면 count에 -1을 해준다.
                int count = map.get(save) - 1;
                //-1을 한 후 count값이 0이라면 한개 존재했었던것이 사라짐으로 완주했다는것을 알 수 있다.
                if(count == 0){
                    //완주했으므로 save변수에서 제거해준다.
                    map.remove(save);
                }else{
                    //save key값에 count value를 저장해준다.
                    map.put(save,count);
                }
            }else{
                answer = save;
            }
        }
        return answer;
    }
}

'Java > Programmers' 카테고리의 다른 글

[Lv.0]캐릭터의 좌표  (0) 2023.01.17
[Lv.0]삼각형의 완성조건(2)  (0) 2023.01.17
Stack/Queue - Level 2, 주식가격  (0) 2021.01.14
Hash - Level 2, 위장  (0) 2021.01.13
Hash - Level2, 전화번호 목록  (0) 2021.01.13

댓글