ALGORITHM
[JAVA] 백준 13414번- 수강신청
연듀
2022. 7. 7. 12:48
https://www.acmicpc.net/problem/13414
13414번: 수강신청
입력 데이터는 표준 입력을 사용한다. 입력은 1개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 과목의 수강 가능 인원 K(1 ≤ K ≤ 100,000)와 학생들이 버튼을 클릭한 순서를 기록한 대기목
www.acmicpc.net
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int k = sc.nextInt();
int l = sc.nextInt();
int count = 0;
LinkedHashSet<String> set = new LinkedHashSet<>();
for(int i=0; i<l; i++){
String str = sc.next();
if(set.contains(str)) set.remove(str);
set.add(str);
}
for(String x : set){
count++;
System.out.println(x);
if(count == k) break;
}
}
}
그냥 map이나 set을 사용해 풀려고 하였으나 map이나 set은 추가한 순서대로 값들이 저장되지 않으므로 어려웠다.
그래서 순서대로 저장되는 LinkedHashSet을 이용해 풀었다.
입력받은걸 저장할 때 기존에 있는 값이라면 지워주고 맨 뒤에다가 추가하면 된다.
반응형