CS 기초·알고리즘
앵커 기준 양방향 조회
채팅 메시지가 id 오름차순으로 정렬된 배열에 있습니다. 푸시 알림을 눌러 특정 메시지로 진입할 때, 그 id를 기준으로 앞 5개·뒤 5개까지 총 최대 11개를 오름차순으로 돌려주는 함수를 작성한다면 어떻게 하겠습니까?
면접관은 이 답을 어떻게 들을까요? 넘어갈지, 더 물어볼지, 떨어뜨릴지 알려 주고, 걸리는 문장은 콕 집어 줘요. 점수는 그대로예요.
채팅 메시지가 id 오름차순으로 정렬된 배열에 있습니다. 푸시 알림을 눌러 특정 메시지로 진입할 때, 그 id를 기준으로 앞 5개·뒤 5개까지 총 최대 11개를 오름차순으로 돌려주는 함수를 작성한다면 어떻게 하겠습니까?
이진 탐색으로 id의 위치(없으면 삽입 위치)를 O(log n)에 찾고, 앞 5개·뒤 5개 범위를 슬라이스한다. 결과는 원 배열의 부분 범위라 이미 오름차순이다.
CS 기초·알고리즘주관식기초
연락처 1만 명 목록에서 이름으로 검색하는 기능을 만듭니다. 순차 검색과 '정렬 후 이진 탐색'은 성능이 어떻게 다르고, 실제 앱에서는 어떤 구조를 쓰겠습니까?
#binary-search
CS 기초·알고리즘주관식딥다이브
셀 높이가 제각각인 커스텀 세로 레이아웃(UICollectionViewLayout 서브클래스)을 만듭니다…
#binary-search
CS 기초·알고리즘주관식심화
한 줄에 URL 하나씩 담긴 1TB 로그 파일에서 중복 URL을 제거해야 하는데 쓸 수 있는 메모리는 1GB뿐입니다. 어떻게 하겠습니까?
#dedupe
CS 기초·알고리즘주관식기초
핀 보드처럼 끝없이 내려가는 iOS 목록에서 같은 항목이 두 번 보이거나 다음 페이지가 빠지는 일을 막으려 합니다. offset 대신 cursor를 쓴다면 어떤…
#pagination