강의

READIZ · LEARN

알고리즘 강의

그림, C++ 예제와 실험으로 동작 원리를 살펴본다.

3개의 강의

배열과 구간을 다루는 기본기

누적합과 두 포인터로 구간을 처리하고, 이분 탐색으로 답의 경계를 찾는다.

선수 지식 · 배열, 반복문과 C++ 함수의 기초

  1. 01

    누적합과 차분 배열: 구간을 한 번에 처리하기

    구간 합과 구간 덧셈을 분리하고, 경계 표시를 실제 값으로 복원합니다.

  2. 02

    투 포인터와 슬라이딩 윈도우: 창을 움직이는 조건

    포인터를 되돌리지 않아도 되는 이유를 살피고, 음수 반례로 적용 범위를 확인합니다.

  3. 03

    이분 탐색: 답이 남는 경계 찾기

    배열의 첫 경계에서 최소 시간과 최대 거리까지, 답을 남기며 후보를 줄입니다.

3개의 강의

좌표와 구간 합을 관리하는 자료구조

좌표 압축, Fenwick과 Segment Tree로 값과 구간 정보를 관리한다.

선수 지식 · 정렬, lower_bound와 누적합의 이해

  1. 01

    좌표 압축: 순서는 남기고 값의 크기는 줄이기

    큰 값과 중복을 작은 인덱스로 바꾸고, 순위 차이와 실제 거리의 차이를 확인합니다.

  2. 02

    Fenwick Tree: 바뀌는 배열의 구간 합

    누적합을 다시 만들지 않고, 점 갱신과 구간 합을 로그 시간에 처리합니다.

  3. 03

    Segment Tree: 구간 합과 미룬 갱신

    점 대입에서 구간 덧셈까지, 노드의 합과 lazy 값을 함께 추적합니다.

1개의 강의

연결 관계를 관리하는 자료구조

Union-Find로 집합을 합치고 연결 여부와 크기를 조회한다.

선수 지식 · 배열, 함수와 트리의 부모 관계

  1. 01

    Union-Find: 연결하고 대표를 찾기

    집합을 합치고 경로를 압축하며, 중복 병합과 집합 크기를 다룹니다.

3개의 강의

경로를 개선하며 배우는 휴리스틱

배송 경로를 만들고, 검증과 SA로 해를 개선한다.

선수 지식 · 배열, 반복문과 C++ 함수의 기초

  1. 01

    배송 순서 개선: 열린 경로와 2-opt

    가까운 점부터 방문하는 초기해를 만들고, 경계 간선만 계산해 배송 경로를 개선합니다.

  2. 02

    휴리스틱 검증: 차분 계산과 스트레스 테스트

    전체 비용 재계산으로 차분식을 확인하고, 고정 seed와 작은 반례로 오류를 재현합니다.

  3. 03

    지역 최적을 벗어나는 탐색: Simulated Annealing

    손해를 잠시 허용하는 이유와 온도, 채택 확률, current와 best의 분리를 실제 경로로 배웁니다.

2개의 강의

일정과 배치를 탐색하는 휴리스틱

축소 모델로 Beam Search와 destroy/repair의 선택·복구 과정을 비교한다.

선수 지식 · greedy, 지역 탐색과 상태 복사의 이해

  1. 01

    설치 일정과 Beam Search: 남길 후보와 실행할 답

    분기 후보와 경로 후보를 따로 줄이고, 탐색 평가값과 실제 점수를 구분합니다.

  2. 02

    광고판 배치와 destroy/repair: 지우고 다시 채우기

    작은 이동의 한계를 여러 광고의 제거와 재배치로 넘고, 실패한 시도를 정확히 복구합니다.

서비스 열기

열기 방식을 선택해 주세요.

로그인이 필요하거나 창 안에서 열리지 않는 서비스는 현재 탭에서 열어 주세요.