CS 기초·알고리즘
두 연결 리스트의 첫 교차 노드
두 단방향 연결 리스트가 뒤쪽 노드를 공유할 수 있습니다. 값이 같은 노드가 아니라 실제로 처음 공유하는 노드를 O(n) 시간, O(1) 추가 공간으로 찾는 방법을 설명해 주세요.
면접관은 이 답을 어떻게 들을까요? 넘어갈지, 더 물어볼지, 떨어뜨릴지 알려 주고, 걸리는 문장은 콕 집어 줘요. 점수는 그대로예요.
두 단방향 연결 리스트가 뒤쪽 노드를 공유할 수 있습니다. 값이 같은 노드가 아니라 실제로 처음 공유하는 노드를 O(n) 시간, O(1) 추가 공간으로 찾는 방법을 설명해 주세요.
두 리스트의 길이를 각각 세어 긴 쪽 포인터를 길이 차만큼 먼저 보낸 뒤 둘을 한 칸씩 같이 전진시키며 ===로 같은 인스턴스인지 비교하면, 처음 같아지는 노드가 교차점이고 끝까지 없으면 nil이다.
CS 기초·알고리즘객관식입문
채팅 화면의 메시지 목록을 담을 자료구조를 고릅니다. 연결 리스트보다 Swift Array가 유리한 이유로 가장 정확한 것은?
#linked-list
CS 기초·알고리즘주관식심화
메모리 이미지 캐시를 LRU로 직접 구현해야 합니다. 어떤 자료구조로 get/put을 O(1)로 만들 수 있나요?
#linked-list
CS 기초·알고리즘주관식심화
LRU 캐시를 구현한 뒤 면접관이 이어서 묻습니다. "이제 각 항목이 저장된 지 일정 시간이 지나면 만료되게 해 주세요. 그러면 무엇이 비싸지나요?" 만료를…
#linked-list
CS 기초·알고리즘객관식기초
거래 금액 배열에서 "합이 한도 L 이하인 가장 긴 연속 구간"을 두 포인터 슬라이딩 윈도우로 O(n)에 풀었습니다. 면접관이 "환불이 섞여서 음수 금액이…
#two-pointers