ํฐ์คํ ๋ฆฌ ๋ทฐ
[๋ฌธ์ ]
https://school.programmers.co.kr/learn/courses/30/lessons/17680?language=java
[ํ์ด]
์ฐ์ ๋ฌธ์ ๋ฅผ ํ๊ธฐ ์ํด์ LRU ๊ต์ฒด ์๊ณ ๋ฆฌ์ฆ์ ๋ํด์ ์์์ผ ํ์ต๋๋ค.
LRU๋ Least Recently Used์ ์ฝ์๋ก, ์ฆ ๊ฐ์ฅ ์ค๋ซ๋์ ์ฐธ์กฐ๋์ง ์์ ์บ์๋ฅผ ๊ต์ฒดํ๋ ๋ฐฉ์์ ๋๋ค.
๋ง์ฝ ์บ์์ ์ฌ์ ์ ์ฅ๊ณต๊ฐ์ด ์๊ณ , ์บ์์ ํด๋น ๊ฐ์ด ์๋ค๋ฉด ๊ฐ์ฅ ์ค๋ซ๋์ ์ฌ์ฉ๋์ง ์์๋ ์บ์๋ฅผ ๊ต์ฒดํ๋ ๊ฒ์ ๋๋ค.
๋ฐ๋ผ์ ์บ์๊ฐ ์ฐธ์กฐ๋ ์๊ฐ๋ณ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๊ณ ์ถ์ด์ LinkedList<String> cache๋ฅผ ํตํด ์บ์๋ฅผ ๊ด๋ฆฌํ์์ต๋๋ค. ๋ง์ฝ ์ด๋ฏธ ์บ์์ ์๋ ๊ฐ์ ์ฌ์ฉํ๋ค๋ฉด ์ค๊ฐ์ ์๋ ์บ์๋ฅผ ๋งจ ๋ง์ง๋ง์ผ๋ก ์ด๋์์ผ์ผ ํ๋ฏ๋ก LinkedList๊ฐ ์ ํฉํ๋ค๊ณ ์๊ฐํ์ต๋๋ค.
cities[]๋ฅผ ํ์ํ๋ฉฐ, ํด๋น city๊ฐ ์บ์์ ์กด์ฌํ์ง ์๊ณ , ๋ง์ฝ ์บ์์ ์ฌ์ ์ ์ฅ๊ณต๊ฐ์ด ์๋ค๋ฉด ๊ฐ์ฅ ์ ๋ ธ๋๋ฅผ ์ญ์ ํ๊ณ ๋ง์ง๋ง ๋ ธ๋์ city๋ฅผ ์ถ๊ฐํ์์ต๋๋ค. ๋ํ, ๋ง์ฝ city๊ฐ ์กด์ฌํ๋ค๋ฉด cache.indexOf(city)๋ฅผ ํตํด ํด๋น city์ index์ ๊ฐ์ ์ฐพ์ ์ญ์ ํ๊ณ ๋ง์ง๋ง ๋ ธ๋์ ๋์๋ฅผ ์ถ๊ฐํด์ฃผ์์ต๋๋ค.
[์ฝ๋]
import java.util.*;
class Solution {
public static int time = 0;
public static LinkedList<String> cache = new LinkedList<String>();
public int solution(int cacheSize, String[] cities) {
int answer = 0;
if(cacheSize == 0) {
answer = cities.length*5;
} else {
for(int i=0;i<cities.length;i++) {
String city = cities[i].toLowerCase();
int index = cache.indexOf(city);
// ํด๋น ๋์๊ฐ ์กด์ฌํ์ง ์์
if(index == -1) {
if(cache.size() == cacheSize) {
cache.removeFirst();
}
answer += 5;
} else {
cache.remove(index);
answer++;
}
cache.addLast(city);
}
}
return answer;
}
}
'Algorithm > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Java] ํ๋ก๊ทธ๋๋จธ์ค - ํํ (0) | 2022.07.12 |
---|---|
[Java] ํ๋ก๊ทธ๋๋จธ์ค - ํฌ๋ ์ธ ์ธํ๋ฝ๊ธฐ ๊ฒ์ (0) | 2022.07.11 |
[Java] ํ๋ก๊ทธ๋๋จธ์ค - ๋๊ตด ํํ (0) | 2022.07.07 |
[Java] ํ๋ก๊ทธ๋๋จธ์ค - ๋น๋ฐ์ง๋ (0) | 2022.07.07 |
[Java] ํ๋ก๊ทธ๋๋จธ์ค - ๋ณด์ ์ผํ (0) | 2022.07.03 |
- Total
- Today
- Yesterday
- JavaScript
- ๋ฐฑ์ค javascript
- git
- ํจ์ํ ํ๋ก๊ทธ๋๋ฐ
- ์ฝ๋ฉํ ์คํธ
- map
- ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ deep dive
- ํ๋กํผํฐ
- ์๋ฐ
- ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ
- ๋์์ธ ํจํด
- http
- ๋คํธ์ํฌ
- 2019 ์นด์นด์ค ๊ฐ๋ฐ์ ๊ฒจ์ธ ์ธํด
- ์ ์ญ ๋ณ์
- ์ด๋ถํ์
- ํ๋กํ ์ฝ
- ์๊ณ ๋ฆฌ์ฆ
- ๋ฐฑ์ค
- ๋ ์์ปฌ ํ๊ฒฝ
- fp
- ์๋ฐ์คํฌ๋ฆฝํธ
- ์ด์์ฒด์
- ํ๋ก๊ทธ๋๋จธ์ค
- TDD
- ์นด์นด์ค ์ธํด
- ํฌํฌ์ธํฐ
- ๋ฐฑ์ค node.js
- Baekjoon
- ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |