Daily LeetCode Challenge - 146. LRU Cache

Min Young Kim·2023년 7월 18일
0

algorithm

목록 보기
193/198

Problem From.

https://leetcode.com/problems/lru-cache/

오늘 문제는 주어진 조건에 따라 LRUCache 를 구현하는 문제였다.

이 문제는 LinkedHashMap 을 이용해서 간단하게 풀 수 있었는데,
주어진 조건에 맞게 map 에 원소가 있으면 반환해주고 없으면 -1 을 반환해주는 함수를 작성해주면 되었다.

class LRUCache(capacity: Int) {

    val cap = capacity
    var map = LinkedHashMap<Int,Int>()

    fun get(key: Int): Int {
        return map.getOrDefault(key, -1).also { 
            if(it != -1) {
                map.remove(key)
                map[key] = it
            }
        }
    }

    fun put(key: Int, value: Int) {
        map.remove(key)
        map.put(key, value)
        if(map.size > cap) {
            map.remove(map.keys.first())
        }
    }

}

/**
 * Your LRUCache object will be instantiated and called as such:
 * var obj = LRUCache(capacity)
 * var param_1 = obj.get(key)
 * obj.put(key,value)
 */
profile
길을 찾는 개발자

1개의 댓글

comment-user-thumbnail
2023년 7월 18일

잘 봤습니다. 좋은 글 감사합니다.

답글 달기