사용한 것
- 멀티탭에서 뽑을 전기용품을 선택하기 위한 그리디
 
풀이 방법
- 멀티탭 구멍의 순서는 중요하지 않으므로 
HashSet을 사용한다. 
- 전기용품의 사용순서를 순회하며,
- 이미 멀티탭에 꽂혀있으면 
continue 
- 멀티탭에 꽂을 구멍이 남아있다면 
add() 
- 멀티탭에 꽂을 구멍이 없다면 뽑을 전기용품을 그리디로 선택한다.
- 사용되지 않을 전기용품을 우선적으로 뽑는다.
 
- 모두 사용될 것이면 가장 나중에 사용할 전기용품을 뽑는다.
 
 
 
코드
public class Main {
    public static void main(String[] args) throws IOException {
        
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String[] line = br.readLine().split(" ");
        int n = Integer.parseInt(line[0]);
        int k = Integer.parseInt(line[1]);
        int[] orderOfUse = new int[k];
        Set<Integer> powerSocket = new HashSet<>();
        line = br.readLine().split(" ");
        for (int i = 0; i < k; i++) {
            orderOfUse[i] = Integer.parseInt(line[i]);
        }
        
        int answer = 0;
        for (int i = 0; i < k; i++) {
            int item = orderOfUse[i];
            
            if (powerSocket.contains(item)) {
                continue;
            }
            if (powerSocket.size() < n) { 
                powerSocket.add(item);
            } else { 
                int maxIdx = 0;
                boolean hasNoUseItem = false;
                for (int pluggedItem : powerSocket) {
                    boolean exists = false;
                    for (int j = i + 1; j < k; j++) {
                        if (orderOfUse[j] == pluggedItem) {
                            maxIdx = Math.max(j, maxIdx);
                            exists = true;
                            break;
                        }
                    }
                    if (!exists) {
                        hasNoUseItem = true;
                        powerSocket.remove(pluggedItem);
                        powerSocket.add(item);
                        break;
                    }
                }
                if (!hasNoUseItem) {
                    powerSocket.remove(orderOfUse[maxIdx]);
                    powerSocket.add(item);
                }
                answer++;
            }
        }
        System.out.println(answer);
    }
}