알고리즘 문제 풀이를 블로그에 올리는 이유는 풀이, 코드를 기록하기 위함이니
앞으로 문제를 다 긁어오기보다 링크만 두고 풀이가 잘 보이도록 포스팅 할 예정입니다!
이 문제는 수강신청 대기 목록에서 (버튼을 두 번 이상 누른)중복값을 뒤로 밀고, 수강인원만큼 앞에서부터 순서대로 학번을 뽑아 출력하는 문제이다.
중복값 제거
에 꽂혀서 이건 set
이다! 라고 생각함LinkedHashSet
을 사용하면 입력 순서대로 정렬set(remove)
추가import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.StringTokenizer;
public class Main {
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());
LinkedHashSet<String> set = new LinkedHashSet<>();
for(int i = 0; i < L; i++) {
String number = br.readLine();
set.remove(number);
set.add(number);
}
Iterator<String> iter = set.iterator();
int cnt = 0;
while(iter.hasNext() && cnt < K) {
System.out.println(iter.next());
cnt++;
}
}
}