[프로그래머스][완주하지 못한 선수]-Lv.1

호준·2021년 12월 29일
0

Algorithm

목록 보기
48/111
post-thumbnail

문제

코드

class Solution {
    public String solution(String[] participant, String[] completion) {
        HashMap<String, Integer> hash = new HashMap<String, Integer>();
        for(String str : participant){
            if(hash.containsKey(str)){ // hash에 참가자 있는 경우
                // hash에 있는 참가자 +1
                hash.replace(str,hash.get(str)+1);
            }else{ // hash 참가자 없는 경우
                hash.put(str,1);
            }
        }
        for(String str : completion){
        	//완주한 선수를 hash에서 -1
            hash.replace(str,hash.get(str)-1);
        }
        String answer ="";
        for(String str : participant){
            if(hash.get(str)==1){
                answer = str;
                break; // 완주하지 못한 선수는 1명이기때문에 반복문 종료
            }
        }
        return answer;
    }
}

느낀점

배열로도 접근이 가능하지만 HashMap<key,value>를 통해 두가지를 묶을 수 있어서 내가 생각하기에는 배열로 접근하는 것보다 더 효율적인 접근인거 같다.

profile
도전하자

0개의 댓글