코테공부

코드 싸개 탈출기 (1)

plunder-incorporated 2021. 6. 27. 13:44

완주하지 못한 선수

 

코딩테스트 연습 - 완주하지 못한 선수

수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수

programmers.co.kr

import java.util.*;

class Solution {
    public String solution(String[] participant, String[] completion) {
        
        //해시맵은 키가 만약에 같으면 그 키에다가 넣어 버린다는 것을 명심하자
        HashMap<String,Integer> participantMap = new HashMap();
        String answer = "";

        for(String player: participant)
            participantMap.put(player,participantMap.getOrDefault(player,0)+1);
        for(String player: completion)
            participantMap.put(player, participantMap.getOrDefault(player,0)-1);
        
       for(String key : participantMap.keySet()){
           if(participantMap.get(key)!=0){
               answer = key;
           }
       }
        return answer;
    }
}

 

해시맵을 처음써봐서 오래걸렸다. 

소트를 해서 비교하는 방법도 생각해 보았으나 자료구조 공부를 겸하고 있으므로 꾸득꾸득 해시맵을 이용한 해결법을생각해 내서 풀어보았다.