프로그래머스 해시 - 완주하지 못한 선수 [JAVA] - 22년 7월 3일

Denia·2022년 7월 3일
0

코딩테스트 준비

목록 보기
2/201
package com.company;

import java.util.*;

class Solution {
    static public void main(String[] args){
//        String[] participant = {"leo", "kiki", "eden"};
//        String[] completion = {"eden", "kiki"};
//        String[] participant = {"marina", "josipa", "nikola", "vinko", "filipa"};
//        String[] completion = {"josipa", "filipa", "marina", "nikola"};
        String[] participant = {"mislav", "stanko", "mislav", "ana"};
        String[] completion = {"stanko", "ana", "mislav"};


        System.out.println(solution(participant, completion));
    }

    static public String solution(String[] participant, String[] completion) {
        //이름으로 된 데이터들을 비교하기 위해서 Map을 사용함
        Map<String, Integer> diffMap = new HashMap<>();

        //참가자들의 기본 데이터를 삽입 <이름, 기본 값 + 1>
        for (String parti : participant) {
            diffMap.put(parti, diffMap.getOrDefault(parti, 0) + 1);
        }

        //완주자들은 +1 해줬던 값을 다시 뺀다.
        for (String comple : completion) {
            diffMap.put(comple, diffMap.get(comple) - 1);
        }

        //get 값이 0이 아닌 참가자가 완주하지 못한 참가자
        for(String parti : participant) {
            if(diffMap.get(parti) > 0 ){
                return parti;
            }
        }

        return null ;
    }
}
profile
HW -> FW -> Web

0개의 댓글