[์ธํ๋ฐ_์ ๋ ฌ] 4. Least Recently Used
<<ํ์ด>>
-๋์ ํ์ด-
์๊ฐ ๋ณต์ก๋ : O(N^3)
์ด ๋ฌธ์ ๋ฅผ ํผ ํต์ฌ์ ์ธ ๊ฐ์ง๊ฐ ์๋ค.
1. ์ฐ์ , ์ด๋ ํ ๊ท์น์ด ์๋ํ๋์ง๋ฅผ ํ์ ํ๊ณ ๊ทธ ์๋ฆฌ ๋๋ก ์ฝ๋๋ฅผ ๊ตฌํํ๋ ค๊ณ ํ๋ค.(์ฌ์ฉํ๋ ๊ฒ์ ์ฌ ์ฌ์ฉํ๊ฒ ๋๋ฉด ๊ทธ๊ฒ์ ํํธ์ด๊ณ ์๋ ๊ทธ๊ฐ์ ์์น์์ ๋ถํฐ ์ค๋ฅธ์ชฝ์์ ์ผ์ชฝ์ผ๋ก ๊ฐ์ ์ค๋ฅธ์ชฝ์ผ๋ก ์ด๋์ํจ๋ค. ๋ง์ฝ ๊ฐ์ ๊ฒ์ด ์๊ณ ์๋ก์ด ๊ฐ์ด ๋ค์ด์ค๊ฒ ๋๋ฉด ๋งจ ์ค๋ฅธ์ชฝ๋ถํฐ ์์ํด์ ๊ฐ์ ์ค๋ฅธ์ชฝ์ผ๋ก ์ด๋์ํจ๋ค. ), ์ด์ ๋ถํฐ ์ฌ์ฉํ๋ tmp๋ฅผ ์์์ ์ผ๋ก ์ฌ์ฉํ๋ค.
2. ์๊ฐ ๋ณต์ก๋๊ฐ ํฐ ๋งํผ ์ด๋ ์ํฉ์์ break๋ฅผ ๊ฑธ์ด์คฌ๋ค.
3. boolean run์ ์ฌ์ฉํด์ ํ์ํ ๋๋ง ์ฝ๋๊ฐ ๋์๊ฐ๊ฒ ์ค์ ํ๋ค.
import java.util.Scanner;
class Main {
private int[] solution(int n, int[] arr) {
int[] brr = new int[n];
int tmp = 0;
for(int i = 0; i < arr.length; i++) {
tmp = arr[i];
boolean run = true;
for (int j = 0; j < brr.length; j++) {
if (brr[j] == tmp) {
for (int k = j - 1; k >= 0; k--) {
brr[k + 1] = brr[k];
}
brr[0] = tmp;
run = false;
break;
}
}
if (run) {
for (int z = brr.length - 1; z >= 1; z--) {
brr[z] = brr[z - 1];
}
brr[0] = tmp;
}
}
return brr;
}
public static void main(String[] args) {
Main T = new Main();
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int m = in.nextInt();
int[] arr = new int[m];
for(int i = 0; i < m; i++) {
arr[i] = in.nextInt();
}
for(int x : T.solution(n, arr)) System.out.print(x + " ");
}
}
-๊ฐ์ฌ๋ ํ์ด-
import java.util.Scanner;
class Main {
private 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;
if(pos == -1) {
for(int i = size - 1; i >= i; i--) {
cache[i] = cache[i - 1];
}
cache[0] = x;
} else {
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 in = new Scanner(System.in);
int s = in.nextInt();
int n = in.nextInt();
int[] arr = new int[n];
for(int i = 0; i < n; i++) {
arr[i] = in.nextInt();
}
for(int x : T.solution(s, n, arr)) System.out.print(x + " ");
}
}
๋๋ ์ ์ฒด์ ์ธ ํ์ด ๋ฐฉ์์ ๊ฐ์ง๋ง ๊ฐ์ฌ๋์ if else ๋ฅผ ์ฌ์ฉํด์ ์ฝ๋๋ฅผ ๊ตฌ์ฑํ๋ค.
ํฐ ์ฐจ์ด๋ ์์ง๋ง ๋ ๋ค๋ฅธ ํ์ด ๋ฐฉ์์ ๋ณด๋ฉฐ ์ค๋๋ ๋ฐฐ์๊ฐ๋ค ~~!!