From 54637bfda2a1604d181bb5e5e847865fccee6b82 Mon Sep 17 00:00:00 2001 From: rl544 <111494264+rl544@users.noreply.github.com> Date: Tue, 27 Dec 2022 06:47:09 +0900 Subject: [PATCH] =?UTF-8?q?updated=20at=202022.=2012.=2027.=20=EC=98=A4?= =?UTF-8?q?=EC=A0=84=206:47:10?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- programmers/[1차] 캐시/solution.java | 66 +++++++++++----------------- 1 file changed, 26 insertions(+), 40 deletions(-) diff --git a/programmers/[1차] 캐시/solution.java b/programmers/[1차] 캐시/solution.java index a0a4fbe..d0e231f 100644 --- a/programmers/[1차] 캐시/solution.java +++ b/programmers/[1차] 캐시/solution.java @@ -16,38 +16,28 @@ class Solution { continue; } while(cc==false){ - // for(int a = 1; a <= cacheSize; a ++){ - // if(hs.get(a) == null) { - int bcon = 0; - for(int cs = 1; cs <= Math.min(cacheSize, aIdx); cs ++){ - if(hs.getOrDefault(hsA[aIdx-cs],"").equals(c)){ - int x = hsA[aIdx-cs]; - hs.put(x,c); - hss.put(x,aIdx); - for(int cb = aIdx-cs; cb > Math.max(aIdx - cacheSize,0); cb--){ - // hss.put(hsA[cb-1],cb); - hsA[cb]=hsA[cb-1]; - } - - // System.out.println(aIdx+" "+x+" 초기중복"); - hsA[aIdx++]=x; - answer += hit; - bcon = 1; - // oa--; - break; - } - } - if(bcon != 0) break; - ccon = oa; - hs.put(oa,c); - hss.put(oa,aIdx); - // System.out.println(aIdx+" "+oa+" 최초키입력"); - hsA[aIdx++]=oa; - answer += miss; - if(oa++==cacheSize) cc = true; + int bcon = 0; + for(int cs = 1; cs <= Math.min(cacheSize, aIdx); cs ++){ + if(hs.getOrDefault(hsA[aIdx-cs],"").equals(c)){ + int x = hsA[aIdx-cs]; + hs.put(x,c); + hss.put(x,aIdx); + for(int cb = aIdx-cs; cb > Math.max(aIdx - cacheSize,0); cb--) + hsA[cb]=hsA[cb-1]; + hsA[aIdx++]=x; + answer += hit; + bcon = 1; + break; + } + } + if(bcon != 0) break; + ccon = oa; + hs.put(oa,c); + hss.put(oa,aIdx); + hsA[aIdx++]=oa; + answer += miss; + if(oa++==cacheSize) cc = true; break; - // } - // } // aIdx > cacheSize-1 } if(ccon == 0 && cc){ int con = 0; @@ -74,15 +64,11 @@ class Solution { min = Math.min(hss.get(a),min); mina = a; } - } // - for - // if(hss.get(a)==aIdx-cacheSize){ - hs.put(mina,c); - hss.put(mina,aIdx); - // System.out.println(aIdx+" "+mina+" 교체"); - hsA[aIdx++]=mina; - answer += miss; - // break; - // } + } + hs.put(mina,c); + hss.put(mina,aIdx); + hsA[aIdx++]=mina; + answer += miss; } // if not matched } // if Last } //Main for