1. 완주하지 못한 선수

import java.util.*;

class Solution {
    public String solution(String[] participant, String[] completion) {
        Map<String, Integer> pMap = new HashMap<>();
        
        for(String name : participant){
            pMap.put(name, pMap.getOrDefault(name,0) +1);
        } 
        
        for(String name : completion){
            pMap.put(name, pMap.getOrDefault(name,0) -1);
        } // leo,1 kiki(1-1)=0, eden(1-1)=0
        
        for(String key : pMap.keySet()) {
            if(pMap.get(key) == 1)
                return key;
        }
        return null;
    }
}

2. 폰켓몬

import java.util.*;

class Solution {
    public int solution(int[] nums) {
				// 1. List 활용
        List<Integer> list = new ArrayList<>();
        for(int i : nums){
            if(!list.contains(i)) list.add(i);
        }
        //return Math.min(nums.length/2,list.size());
				return (nums.length/2 < list.size()) ? nums.length/2 : list.size();

				// 2. Set 활용
				Set<Integer> list = new HashSet<>();
        for(int i : nums){
            list.add(i);
        }

        return Math.min(nums.length/2,list.size());
    }
}

2. 전화번호 목록

import java.util.*;

class Solution {
    public boolean solution(String[] phone_book) {
				// 1. List 활용
        List<String> list = new ArrayList(Arrays.asList(phone_book));
        Collections.sort(list);
        
        for(int i=0; i<list.size()-1;i++){
            String num1 = list.get(i);
            String num2 = list.get(i+1);
            if(num2.startsWith(num1)) return false;
        }
        return true;

			// 2. Set 활용
        Set<String> setList = new HashSet<>();
        
        for(String book : phone_book){
            setList.add(book);
        }
        
        for(String book : phone_book){
            for(int i=1; i<book.length(); i++){
                if(setList.contains(book.substring(0,i))) return false;
            }
        }
        return true;

    }
}

3. 의상

import java.util.*;

class Solution {
    public int solution(String[][] clothes) {
        Map<String, Integer> map = new HashMap<>();
        int result = 1;
        
        for(String[] value : clothes) 
            map.put(value[1],(map.getOrDefault(value[1],0)+1));
        
        for(int i : map.values()){
            result *= i+1;
        }
        
        return result-1;
    }
}