Coding Test Java
인프런 - LRU
seonggu
2024. 1. 30. 19:42
import java.util.*;
class Main {
public int[] solution(int size, int n, int[] arr){
int[] cache=new int[size];
for(int x : arr) {
int pos = -1; //인덱스 번호
for(int i=0; i<size; i++){
if(x==cache[i]) pos = i; // x가 캐시에 있으면 히트 지점 인덱스 저장
}
if(pos==-1) { // miss
for(int i=size-1 ;i>=1; i--) { //맨뒤부터
cache[i] = cache[i-1]; // 숫자 당겨주기
}
cache[0] = x;
} else{ // hit
for(int i=pos; i>=1; i--) { // 해당 인덱스부터
cache[i] = cache[i-1]; // 숫자 당겨주기
}
cache[0] = x;
}
}
return cache;
}
public static void main(String[] args){
Main T = new Main();
Scanner kb = new Scanner(System.in);
int s=kb.nextInt();
int n=kb.nextInt();
int[] arr=new int[n];
for(int i=0; i<n; i++) arr[i]=kb.nextInt();
for(int x : T.solution(s, n, arr)) System.out.print(x+" ");
}
}