[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] [1์ฐจ] ์บ์‹œ

2023. 8. 9. 13:25ยท๐Ÿ’ป ๊ฐœ๋ฐœ/๐Ÿ“ˆ ์•Œ๊ณ ๋ฆฌ์ฆ˜

 

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] [1์ฐจ] ์บ์‹œ (LV.2)

 

๋ฌธ์ œ๋งํฌ

https://school.programmers.co.kr/learn/courses/30/lessons/17680

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

 

 

ํ’€์ด ๊ณผ์ •

 

1. ์šฐ์„  ์บ์‹œ ์‚ฌ์ด์ฆˆ๊ฐ€ 0์ด๋ฉด, cache hit์ด ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ, ๋ฐฐ์—ด๊ธธ์ด * 5๋ฅผ ํ•ด์„œ ๋ฐ”๋กœ return ํ•ด์ค€๋‹ค.

 

2. ์บ์‹œ ์‚ฌ์ด์ฆˆ์— ๋งž๊ฒŒ ๋ฌธ์ž์—ด์„ ๋‹ด์„ ๋ฐฐ์—ด cache๊ณผ ํ•ด๋‹น ๋ฌธ์ž์—ด์ด ์บ์‹œ์— ๋ช‡ ํ„ด๋™์•ˆ ๋‹ด๊ณ  ์žˆ์—ˆ๋Š”์ง€ ์นด์šดํŠธํ•  ์ •์ˆ˜ ๋ฐฐ์—ด cnt์„ ๋งŒ๋“ค์–ด์ฃผ์—ˆ๋‹ค.

 

3. ๋จผ์ € ์ž…๋ ฅ๋ฐ›์€ ๋„์‹œ์ด๋ฆ„ ๋ฐฐ์—ด cities๋ฅผ for๋ฌธ์œผ๋กœ ๋Œ๋ฉฐ ํ•˜๋‚˜์”ฉ ์บ์‹œ์— ๋„ฃ์–ด์ค€๋‹ค. ๋‹ค๋งŒ ๋„ฃ์–ด์ค„ ๋•Œ LRU ์บ์‹œ ๊ต์ฒด ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋”ฐ๋ผ์„œ ํฌ๊ฒŒ ๋‘ ๋ฐฉ๋ฒ•์œผ๋กœ ๋‚˜๋‰œ๋‹ค.

1. ์บ์‹œ์— ํ•ด๋‹น ๋„์‹œ์ด๋ฆ„์ด ์žˆ๋Š”์ง€? (cache hit)
2. ์บ์‹œ์— ํ•ด๋‹น ๋„์‹œ์ด๋ฆ„์ด ์—†๋Š”์ง€? (cache miss)

 

1๋ฒˆ๊ณผ ๊ฐ™๋‹ค๋ฉด cache hit์ด๋ฏ€๋กœ ์‹คํ–‰์‹œ๊ฐ„์ด 1์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฆฌํ„ด๊ฐ’์— +1์„ ํ•ด์ฃผ๊ณ , ์นด์šดํŠธ ๋ฐฐ์—ด์€ 0์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•ด์ค€๋‹ค. ์ด ๋•Œ, ๋‹ค๋ฅธ ๋ฐฐ์—ด๋“ค์€ ํ•œ ํ„ด์„ ๋„๋Š” ๊ฒƒ์ด๋ฏ€๋กœ ์นด์šดํŠธ ๋ฐฐ์—ด์— +1์„ ํ•ด์ค€๋‹ค. ์ฐธ๊ณ ๋กœ ๋„์‹œ ์ด๋ฆ„์„ ๋น„๊ตํ•  ๋•Œ๋Š” equalsIgnoreCase()๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ, ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„ ์—†์ด ๋น„๊ตํ•˜๋„๋ก ํ•ด์ค€๋‹ค.

 

2๋ฒˆ๊ณผ ๊ฐ™๋‹ค๋ฉด cache miss์ด๋‹ค. ์นด์šดํŠธ ๋ฐฐ์—ด์„ ๋Œ๋ฉฐ ์ œ์ผ ํฐ ๊ฐ’(์ œ์ผ ์บ์‹œ์— ์˜ค๋ž˜ ๋จธ๋ฌด๋ฅธ ๊ฐ’)์„ ์ฐพ์•„๋‚ธ๋‹ค. ํ•ด๋‹น ์ธ๋ฑ์Šค๋ฅผ ๊ตฌํ•˜์—ฌ, ์บ์‹œ ๋ฐฐ์—ด์— ๋„์‹œ ์ด๋ฆ„์„ ์—…๋ฐ์ดํŠธ ํ•ด์ฃผ๊ณ , ์นด์šดํŠธ๋Š” 0์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค. ์‹คํ–‰์‹œ๊ฐ„์ด 5์ด๋ฏ€๋กœ ๋ฆฌํ„ด๊ฐ’์— +5๋ฅผ ํ•ด์ค€๋‹ค.

 

 

 

 

์ฝ”๋“œ

class Solution {
    public int solution(int cacheSize, String[] cities) {
        int answer = 0;

        if(cacheSize == 0) {
            return cities.length * 5;
        }

        int[] cnt = new int[cacheSize];
        String[] cache = new String[cacheSize];

        for(int i = 0; i < cities.length; i++) {

            String city = cities[i];
            boolean b = true;
            int val = -99999999;
            int idx = 0;

            for(int j = 0; j < cache.length; j++) {
                if(city.equalsIgnoreCase(cache[j])) {
                    cnt[j] = 0;
                    b = false;
                    answer += 1;
                } else {
                    cnt[j] += 1;
                }
            }


            if(b) {
                for(int j = 0; j < cnt.length; j++) {
                    if(val < cnt[j]) {
                        val = cnt[j];
                        idx = j;
                    }
                    cnt[j] += 1;
                }
                cache[idx] = city;
                cnt[idx] = 0;
                answer += 5;
            }

        }

        return answer;
    }
}

 

 

 

์ €์ž‘์žํ‘œ์‹œ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'๐Ÿ’ป ๊ฐœ๋ฐœ > ๐Ÿ“ˆ ์•Œ๊ณ ๋ฆฌ์ฆ˜' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] JadenCase ๋ฌธ์ž์—ด ๋งŒ๋“ค๊ธฐ  (0) 2023.08.09
์ตœ๋Œ€๊ณต์•ฝ์ˆ˜, ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜ ๊ตฌํ•˜๊ธฐ (Feat. ์œ ํด๋ฆฌ๋“œ ํ˜ธ์ œ๋ฒ•)  (1) 2022.11.27
'๐Ÿ’ป ๊ฐœ๋ฐœ/๐Ÿ“ˆ ์•Œ๊ณ ๋ฆฌ์ฆ˜' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] JadenCase ๋ฌธ์ž์—ด ๋งŒ๋“ค๊ธฐ
  • ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜, ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜ ๊ตฌํ•˜๊ธฐ (Feat. ์œ ํด๋ฆฌ๋“œ ํ˜ธ์ œ๋ฒ•)
EastShine_
EastShine_
๋” ๋‚˜์€ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜๊ธฐ ์œ„ํ•œ ๋‚˜์˜ ๊ธฐ๋ก ๐Ÿ“
  • EastShine_
    ๊ฐœ๋ฐœ.LOG ๐Ÿ’ป
    EastShine_
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
  • 06-22 00:03
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (27)
      • ๐Ÿ’ป ๊ฐœ๋ฐœ (21)
        • ๐Ÿ–ฅ๏ธ ์šด์˜์ฒด์ œ (3)
        • ๐ŸŒ ๋„คํŠธ์›Œํฌ (0)
        • ๐Ÿ’พ Database (3)
        • ๐ŸŽ› Java (0)
        • ๐Ÿ–ฒ Javascript (0)
        • ๐Ÿ€ Spring (5)
        • ๐ŸŽธ ETC (4)
        • ๐Ÿ“ˆ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (3)
        • ๐Ÿ“– TIL (Today I Learned) (3)
      • ๐Ÿ  ์ผ์ƒ (6)
        • ๐Ÿ““ ์ผ์ƒ ์ผ๊ธฐ (6)
  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    6๊ธฐ
    ์ฝ”๋”ฉํ…Œ์ŠคํŠธ
    ๋™์‹œ์„ฑ์ฒ˜๋ฆฌ
    e-book pdf ๋ณ€ํ™˜
    ๋ฐฑ์—”๋“œ
    ํ•ญํ•ดํ”Œ๋Ÿฌ์Šค
    ๋น„๊ด€์ ๋ฝ
    e-book pdf ์ถ”์ถœ
    ์ฝ˜์„œํŠธ์˜ˆ์•ฝ์„œ๋น„์Šค
    redis
    transactionaleventlistener
    ๋Œ€๊ธฐ์—ด
    ํšŒ๊ณ 
    ์•Œ๊ณ ๋ฆฌ์ฆ˜
    Whisper API
    Python
    ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
    ๋‚™๊ด€์ ๋ฝ
    ํŠธ๋žœ์žญ์…˜ ๋ถ„๋ฆฌ
    spring
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.1
EastShine_
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] [1์ฐจ] ์บ์‹œ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”