[백준 13414] 수강신청 [Java]
2025. 9. 20. 01:30ㆍPS 풀이/Baekjoon Online Judge
문제
13414번: 수강신청
boj.ma
풀이
문제 요약
수강 신청 버튼을 클릭한 기록 L개 중 문제의 조건에 맞게 최대 K명의 수강 신청을 처리하자.
아이디어
수강 신청 버튼을 처음에 누른 후 또 눌렀다면 순서가 밀려야 한다. Map을 이용해 학번과 버튼을 누른 순서를 저장하고, 이미 저장이 되있더라도 새로 버튼을 눌렀다면 순서만 업데이트해주자.
Map은 순서가 보장되지 않으므로, 리스트에 담아준 후 버튼을 누른 순서를 기준으로 정렬 후 최대 K명을 뽑으면 된다.
// Solve
Map<String, Integer> map = new HashMap<>();
for (int i = 0; i < L; ++i) {
map.put(br.readLine(), i);
}
List<Map.Entry<String, Integer>> list = new ArrayList<>(map.entrySet());
list.sort((a, b) -> a.getValue().compareTo(b.getValue()));
// Output
StringBuilder sb = new StringBuilder();
final int SIZE = Math.min(K, list.size());
for (int i = 0; i < SIZE; ++i) {
sb.append(list.get(i).getKey()).append("\\n");
}
풀이시간
10분
소스코드
https://github.com/rogi-rogi/problem-solving/blob/main/baekjoon-online-judge/easy/13414.java
problem-solving/baekjoon-online-judge/easy/13414.java at main · rogi-rogi/problem-solving
Daily Problem Solving Challenges. Contribute to rogi-rogi/problem-solving development by creating an account on GitHub.
github.com
'PS 풀이 > Baekjoon Online Judge' 카테고리의 다른 글
| [백준 22973] 점프 숨바꼭질 [Java] (0) | 2025.09.22 |
|---|---|
| [백준 06591] 이항 쇼다운 [Java] (0) | 2025.09.21 |
| [백준 03024] 선분 덮기 [Java] (0) | 2025.09.19 |
| [백준 15922] 아우으 우아으이야!! [Java] (0) | 2025.09.18 |
| [백준 21968] 선린의 터를 [Java] (0) | 2025.09.17 |