COMPUTER SCIENCE · ALGORITHMS24강 공개
자료구조 · 알고리즘 기초집
문제의 입력 크기와 반복 연산을 분석하고, Java 표준 컬렉션과 직접 구현을 비교하며 게임 기록 분석·랭킹 시스템으로 연결합니다.
강의 수24강
난이도초급 → 중급 입문
최종 결과물정렬·탐색·Top K·그래프 탐색을 결합한 게임 기록 분석·랭킹 프로그램
진행률을 불러오는 중...
과정 소개
이 과정은 자료구조 이름을 암기하는 대신 어떤 입력과 연산에 어떤 구조가 맞는지 설명하는 힘을 기릅니다. 19강에서 복잡도와 선형·해시 구조를 익히고, 1018강에서 정렬·탐색·재귀·트리·힙을 직접 구현합니다. 19~22강에서는 그래프·BFS·DFS·그리디·동적 계획법으로 풀이 전략을 넓히고, 마지막 두 강의에서 문제 설계와 통합 프로그램을 완성합니다.
Java는 기본 구현 언어지만 Big-O, 불변식, 분할 정복, 탐색 전략은 특정 언어에 종속되지 않게 설명합니다. ArrayList, HashMap, PriorityQueue를 사용할 때는 API가 보장하는 계약과 특정 JDK 구현 세부를 구분합니다.
선수지식
개발 환경
- JDK: 설치된 LTS JDK를 사용합니다. 정확한 지원 버전과 설치 절차는 학습 시점의 Oracle Java SE 지원 로드맵과 선택한 배포판 공식 문서를 확인합니다.
- 실행:
C:\dev\game-ranking-algorithms에서javac -Xlint:all -d out과java -cp out을 기준으로 합니다. - 도구: IDE는 선택 사항이며 모든 핵심 예제는 PowerShell만으로 실행할 수 있습니다.
- 참고: Java Collections Framework와 각 컬렉션 API의 보장 사항을 우선 확인합니다.
성능 측정 결과는 하드웨어, 운영체제, JDK, JVM 워밍업, 입력 분포에 따라 달라집니다. 강의에서는 측정값을 절대값으로 일반화하지 않고 Big-O와 동일 조건 반복 측정을 함께 사용합니다.
최종 결과물
- 플레이어 ID·점수·플레이 시간·스테이지를 담는
GameRecord ArrayList원본 기록과HashMap플레이어별 색인Comparator점수 정렬과 중복을 고려한 이진 탐색PriorityQueue기반 상위 K 랭킹- 인접 리스트 스테이지 그래프와 BFS 도달 탐색
- 일반·빈 데이터·중복 및 경계값을 포함한 자체 테스트
- 주요 기능별 시간·공간 복잡도와 확장 체크리스트
24강 학습 순서
- 자료구조와 알고리즘의 역할: 왜 문제 해결 방식이 중요할까?
- 시간 복잡도와 공간 복잡도: Big-O를 읽는 법
- 배열과 ArrayList: 순서가 있는 게임 기록 관리
- 문자열과 문자 배열: 텍스트 데이터를 효율적으로 다루기
- 연결 리스트: 노드로 데이터를 연결하는 원리
- 스택: 실행 취소와 괄호 검증 문제
- 큐와 덱: 대기열과 작업 순서 관리
- 해시와 HashMap: 플레이어 기록을 빠르게 찾기
- Set과 중복 제거: 고유 플레이어·아이템 관리
- 정렬 기초: 비교 정렬과 Comparator 사용법
- 버블·선택·삽입 정렬: 느리지만 중요한 기본 원리
- 병합 정렬과 분할 정복: 큰 문제를 나누어 정렬하기
- 퀵 정렬과 피벗: 평균 성능과 최악 상황 이해하기
- 이진 탐색: 정렬된 데이터에서 빠르게 찾기
- 재귀 함수: 종료 조건과 호출 흐름 이해하기
- 트리 기초: 계층 구조와 순회 방법
- 이진 탐색 트리: 삽입·검색·삭제의 원리
- 우선순위 큐와 힙: 최고 점수 랭킹을 효율적으로 관리하기
- 그래프 기초: 정점·간선·인접 리스트 표현
- BFS와 DFS: 맵 탐색과 연결 요소 찾기
- 그리디 알고리즘: 지금의 최선이 전체 해가 되는 조건
- 동적 계획법 기초: 중복 계산을 줄이는 방법
- 문제 풀이 설계법: 입력·제약·예외·복잡도 점검
- 최종 실습: 게임 기록 분석·랭킹 알고리즘 프로그램 완성하기
COURSE ORIENTATION
과정 선택 안내
- 학습 대상
- 코드의 효율을 설명하고 문제에 맞는 자료구조와 탐색 전략을 선택하려는 학습자
- 선수지식
- Java 기초 문법과 List · Map 컬렉션
- 최종 결과물
- 게임 기록 분석·랭킹 프로그램
- 추천 다음 과정