정수가 하나씩 들어올 때, "가장 최근에 접근한 서로 다른 값 K개"를 최신순으로 들고 있는 자료구조 MRU 를 만들어요. (K = MRU_K = 5) 값에 접근하면 그 값이 맨 앞(index 0)으로 와요. mru_access 를 완성하고, tests.c 에 경계 케이스를 추가하세요. (mru_init·mru_dump 는 제공돼요.) Note: mru_access(m, x) — 값 x 에 접근. mru_dump(m, out) — 최신순으로 out 에 채우고 개수를 반환. LRU 캐시의 사촌인 MRU(Most Recently Used) 목록입니다.
순수 C(C11)로 최근 사용 목록(MRU) 자료구조의 접근 처리 함수를 완성하는 문제입니다. 정수가 하나씩 들어올 때 가장 최근에 접근한 서로 구별되는 값 K개(K=5)를 최신순으로 들고, 값에 접근하면 맨 앞으로 오게 해야 합니다. 개수 한도가 있는 최신순 목록을 검증하는 능력을 연습합니다.
개수 한도가 정해진 최신순 목록(MRU)은 캐시 같은 곳에서 흔히 쓰이는 자료구조입니다. 핵심은 같은 값을 다시 접근했을 때의 처리, 서로 구별되는 값이 한도까지 차고 넘칠 때의 처리, 그리고 최신순 순서가 유지되는가입니다. 평범한 입력만으로는 가려지는 부분이 많아, 한도를 넘기는 입력과 같은 값 재접근 같은 경계 케이스까지 확인하는 습관이 중요합니다. 이 문제는 개수 한도가 있는 최신순 목록을 유지하는 영역을 다룹니다.