100일 코딩 도전! 5일차
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
웹 개발
대상자
중급 이상의 알고리즘/자료구조 학습자, 시스템 설계에 관심 있는 개발자
핵심 요약
- LRU 캐시 구현 : 해시맵과 이중연결리스트를 활용한
LRU cache
구현을 통해 자료구조와 메모리 관리 기술 향상 - 0/1 배낭 문제 완료 : 동적 프로그래밍(DP) 기반
0/1 Knapsack
문제 해결 및 다양한 변형 구현 완료 - 포트폴리오 개선 : UI 디자인 개선과 콘텐츠 정리로 프로젝트의 전문성 강화
섹션별 세부 요약
1. LRU 캐시 구현
- LRU cache는 해시맵(
unordered_map
)과 이중연결리스트(doubly linked list
)를 조합하여 최근 사용 데이터를 효율적으로 관리 - 캐시의
put
과get
연산에서 시간 복잡도 O(1) 유지가 핵심 목표 - 시스템 설계 패턴으로서 자료구조 이해와 메모리 최적화 기술 향상
2. 0/1 배낭 문제 완료
- 0/1 Knapsack Problem은 무게 제한 내에서 최대 가치를 선택하는 문제로 DP로 해결
dp[i][w]
배열을 사용해 재귀적 해법을 반복적 구현- 다양한 변형(예: 무게 제한, 물품 수 제한)에 대한 구현 완료
3. 포트폴리오 개선
- UI 디자인 개선을 통해 사용자 경험 강화
- 과거 프로젝트 콘텐츠 정리 및 불필요한 정보 제거
- 프로젝트의 개인적 개성 강조를 위한 세부 디자인 적용
4. 컴퓨터 네트워크 학습
- TCP/IP, HTTP 프로토콜 등 2개 챕터 학습 완료
- 6월 6일 시험 대비로 압박감 증가
- 네트워크 레이어 간 상호작용 이해 강화 필요
결론
- LRU cache와 0/1 Knapsack 문제를 통해 이론과 실무를 연결하는 학습 방식 추천
- 시험 대비 기간에는 일일 학습 목표 설정 및 복습 시간 확보가 중요
- 포트폴리오 개선 시 UX 디자인 원칙을 반영해 전문성을 강조해야 함