Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 정렬
- 프로그래머스
- 알고리즘
- 스택
- 완전탐색
- 재귀
- 그래프
- git
- algorithm
- 자료구조
- SQL
- MySQL
- 백트래킹
- 집합
- 트리
- Bruteforce
- 해시맵
- domain model
- microflow
- 반효경교수님
- 이분탐색
- dfs
- 매개변수 탐색
- Mendix
- Sort
- 가중치없는그래프
- Recursion
- 자바
- 멘딕스
- lcap
Archives
- Today
- Total
728x90
목록CPU (1)
mondegreen
[240427] 알고리즘 리부트 55일차 - 프로그래머스 캐시 자바
어떤 자료 구조를 써야할지 고민을 좀 했다. 최악의 경우 십만 개의 도시를 처리해야 하기 때문에 한 번의 반복문 순회로 끝내야 한다고 생각했다. 배열이나 리스트를 사용하기에는 recently used를 처리하기 위해 배열의 인덱스를 당겨줘야 하는 비효율이 있었다. 반대로 링크드리스트를 활용한다면 인덱슬 당기는 처리는 효율적이겠으나 해당 도시가 어느 인덱스에 있는지 처음부터 다 순회해봐야 하는 것이라 또 비효율이 발생했다. 해시맵과 큐를 사용하고자 했으나 큐도 마찬가지로 순서를 당기기 어려웠다. 이를 해결하기 위한 자료구조는 트리맵이라고 생각했고 키에 순서(인덱스)를 넣고 값에 도시이름을 넣어서 존재하는 경우 해당 키를 삭제하고 다시 인덱스와 도시를 map에 넣어줬다. 이를 활용해서 캐시가 다 찼을 경우 ..
알고리즘 풀이 및 리뷰/프로그래머스
2024. 4. 27. 20:53
728x90