CS 기초·알고리즘
O(1) LRU 캐시
최근 사용한 항목만 남기는 LRU 캐시를 설계합니다. get과 put을 평균 O(1)로 만들기 위해 HashMap과 이중 연결 리스트가 각각 무엇을 맡습니까?
면접관은 이 답을 어떻게 들을까요? 넘어갈지, 더 물어볼지, 떨어뜨릴지 알려 주고, 걸리는 문장은 콕 집어 줘요. 점수는 그대로예요.
최근 사용한 항목만 남기는 LRU 캐시를 설계합니다. get과 put을 평균 O(1)로 만들기 위해 HashMap과 이중 연결 리스트가 각각 무엇을 맡습니까?
Dictionary는 키에서 리스트 노드로 O(1)에 건너뛰는 색인만 맡고, 이중 연결 리스트는 head가 가장 최근, tail이 가장 오래된 순서를 유지해 노드를 O(1)에 떼어 앞으로 옮기거나 끝에서 제거하는 일을 맡는다.
CS 기초·알고리즘주관식입문
스택과 큐의 차이를 설명해 주세요.
#data-structure
CS 기초·알고리즘객관식입문
채팅 화면의 메시지 목록을 담을 자료구조를 고릅니다. 연결 리스트보다 Swift Array가 유리한 이유로 가장 정확한 것은?
#linked-list
CS 기초·알고리즘주관식심화
메모리 이미지 캐시를 LRU로 직접 구현해야 합니다. 어떤 자료구조로 get/put을 O(1)로 만들 수 있나요?
#linked-list
CS 기초·알고리즘주관식심화
LRU 캐시를 구현한 뒤 면접관이 이어서 묻습니다. "이제 각 항목이 저장된 지 일정 시간이 지나면 만료되게 해 주세요. 그러면 무엇이 비싸지나요?" 만료를…
#linked-list