π·πΌλͺ¨μ¬λ΄μ κ°λ°μμ²π·πΌ
[JAVA/μ½λ©ν μ€νΈ] Least Recently Used λ³Έλ¬Έ
[JAVA/μ½λ©ν μ€νΈ] Least Recently Used
μμΌμ΄ 2022. 1. 18. 15:51μ€λͺ
μΊμλ©λͺ¨λ¦¬λ CPUμ μ£ΌκΈ°μ΅μ₯μΉ(DRAM) μ¬μ΄μ κ³ μμ μμ λ©λͺ¨λ¦¬λ‘μ CPUκ° μ²λ¦¬ν μμ μ μ μ₯ν΄ λμλ€κ°
νμν λ°λ‘ μ¬μ©ν΄μ μ²λ¦¬μλλ₯Ό λμ΄λ μ₯μΉμ΄λ€. μλ λΉμΈκ³ μ©λμ΄ μμ ν¨μ¨μ μΌλ‘ μ¬μ©ν΄μΌ νλ€.
μ² μμ μ»΄ν¨ν°λ μΊμλ©λͺ¨λ¦¬ μ¬μ© κ·μΉμ΄ LRU μκ³ λ¦¬μ¦μ λ°λ₯Έλ€.
LRU μκ³ λ¦¬μ¦μ Least Recently Used μ μ½μλ‘ μ§μνμλ©΄ κ°μ₯ μ΅κ·Όμ μ¬μ©λμ§ μμ κ² μ λμ μλ―Έλ₯Ό κ°μ§κ³ μμ΅λλ€.
μΊμμμ μμ μ μ κ±°ν λ κ°μ₯ μ€λ«λμ μ¬μ©νμ§ μμ κ²μ μ κ±°νκ² λ€λ μκ³ λ¦¬μ¦μ λλ€.
μΊμμ ν¬κΈ°κ° μ£Όμ΄μ§κ³ , μΊμκ° λΉμ΄μλ μνμμ Nκ°μ μμ μ CPUκ° μ°¨λ‘λ‘ μ²λ¦¬νλ€λ©΄ Nκ°μ μμ μ μ²λ¦¬ν ν
μΊμλ©λͺ¨λ¦¬μ μνλ₯Ό κ°μ₯ μ΅κ·Ό μ¬μ©λ μμ λΆν° μ°¨λ‘λλ‘ μΆλ ₯νλ νλ‘κ·Έλ¨μ μμ±νμΈμ.
μ λ ₯
첫 λ²μ§Έ μ€μ μΊμμ ν¬κΈ°μΈ S(3<=S<=10)μ μμ μ κ°μ N(5<=N<=1,000)μ΄ μ λ ₯λλ€.
λ λ²μ§Έ μ€μ Nκ°μ μμ λ²νΈκ° μ²λ¦¬μμΌλ‘ μ£Όμ΄μ§λ€. μμ λ²νΈλ 1 ~100 μ΄λ€.
μΆλ ₯
λ§μ§λ§ μμ ν μΊμλ©λͺ¨λ¦¬μ μνλ₯Ό κ°μ₯ μ΅κ·Ό μ¬μ©λ μμ λΆν° μ°¨λ‘λ‘ μΆλ ₯ν©λλ€.
μμ μ λ ₯ 1
5 9
1 2 3 2 6 2 3 5 7
μμ μΆλ ₯1
7 5 3 2 6
ννΈ
import java.util.*;
public class Main {
public static void solution(int s, int n, int[] array){
int[] memory = new int[s];
int cnt = 1;
for(int i=0; i<n; i++){
int tmp = 0;
int val = 0;
for(int j=0; j<cnt; j++){
val = memory[j];
memory[j] = tmp;
tmp = val;
if(array[i] == tmp) {
cnt--;
break;
}
}
if(cnt < s){
cnt++;
}
memory[0] = array[i];
}
for(int i=0; i<s; i++){
System.out.print(memory[i] + " ");
}
}
public static void main(String[] args) {
Main main = new Main();
Scanner kb = new Scanner(System.in);
int s = kb.nextInt();
int n = kb.nextInt();
int[] array = new int[n];
for(int i=0; i<n; i++){
array[i] = kb.nextInt();
}
Main.solution(s, n, array);
}
}
'κ°λ° > μκ³ λ¦¬μ¦ λ¬Έμ νμ΄ JAVA' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[JAVA/μ½λ©ν μ€νΈ] μμ΄κ΅¬νκΈ° (0) | 2022.02.08 |
---|---|
[JAVA/μ½λ©ν μ€νΈ] λμ κ΅ν (0) | 2022.01.30 |
[JAVA/μ½λ©ν μ€νΈ] μκΈμ€ (0) | 2022.01.17 |
[JAVA / μ½λ©ν μ€νΈ] 곡주 ꡬνκΈ° (0) | 2022.01.15 |
[JAVA/μ½λ©ν μ€νΈ] ν¬λ μΈ μΈνλ½κΈ°(μΉ΄μΉ΄μ€) (0) | 2022.01.13 |