PS/inflearn java coding

LRU 연습문제

easy16 2022. 4. 10. 16:50

 

 

Tip :  원소 유무 확인, 삽입정렬과 같은 방식으로 입력데이터 처리.

import java.util.Scanner;




class Main {

	static int answer = 0;
	
	public static void main(String args[]) throws Exception {
		
		Scanner in = new Scanner(System.in);
		int size = in.nextInt();
		int n = in.nextInt();
		int [] arr = new int[n]; 
		int [] cache = new int[size];		
		for ( int i = 0; i < n ; i++)
				arr[i] = in.nextInt();
		
		for ( int value : arr) {
			
			boolean isIn = false;
			int idx = -1;
			for (int i = 0 ; i < size ; i++ ) {
				if ( cache[i] == value ) {
					isIn = true;
					idx = i;
					break;
				}
			}
			
			if ( !isIn ) {				
				int i =0;
				for ( i=size-2; i >= 0 ; i--) {				
					cache[i+1] =cache[i]; 
				}
				cache[i+1]=value;
			} else {				
				int tmp = cache[idx];
				int i;
				for ( i=idx-1 ; i >= 0 ; i--) {
					cache[i+1] =cache[i];
				}
				cache[i+1]=tmp;
			}
		}
		
		
		for ( int value : cache) {
			System.out.print(value + " ");
		}
		
	}
		
		
	
}

ex)
input
5 9
1 2 3 2 6 2 3 5 7

output
7 5 3 2 6