본문 바로가기
Beakjoon&프로그래머스/Java

[백준/Java] 13414번 수강신청

by 현장 2025. 12. 28.

-Code

import java.io.*;
import java.util.*;

public class BOJ13414 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());

        int k = Integer.parseInt(st.nextToken());
        int l = Integer.parseInt(st.nextToken());
        Set<String> studentSet = new LinkedHashSet<>();
        for (int i = 0; i < l; i++) {
            String student = br.readLine();
            if (studentSet.contains(student)) {
                studentSet.remove(student);
            }
            studentSet.add(student);
        }
        int cnt = 0;
        for (String student : studentSet) {
            if (cnt < k) {
                System.out.println(student);
            }
            cnt++;
        }
    }
}

HashSet과 ArrayList를 같이 사용해서 풀려 했으나 순서가 저장이 안되어서 어떻게하나 찾아보니 LinkedHashSet이라는 set이지만 순서가 보장되는 자료 구조가 있어서 해결했습니다.