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)
*/
잘 봤습니다. 좋은 글 감사합니다.