[PAST 알고리즘 시리즈] Part 0 — 시리즈 소개 & PAST 개요

[PAST 알고리즘 시리즈] Part 0 — 시리즈 소개 & PAST 개요

시리즈 안내

이 글은 「アルゴリズム実技検定 公式テキスト [上級]~[エキスパート]編」을 기반으로 한 AtCoder 알고리즘 시리즈Part 0 입니다.

서적의 내용을 단순 번역하는 것이 아닌, 직접 학습하며 이해한 내용을 정리하고, 추가적인 해설과 예제를 곁들여 작성합니다.

개요

이번 파트에서는 시리즈 전체의 기반이 되는 내용을 다룹니다.

  • PAST(アルゴリズム実技検定) 란 무엇인가?
  • 시험 형식, 랭크 체계, 채점 방식
  • 본 시리즈의 학습 로드맵

알고리즘 문제를 풀어본 경험이 있는 분이라면 바로 Part 1부터 시작해도 괜찮지만, PAST라는 시험 자체의 특성과 이 시리즈가 어떤 방향으로 전개되는지 파악하기 위해 한 번 읽어보시는 것을 권장합니다.

PAST란 무엇인가?

PAST (Practical Algorithm Skill Test) 는 프로그래밍 능력을 측정하는 일본 최초의 실기 검정시험입니다.

기존의 IT 관련 자격시험과는 근본적으로 다릅니다:

구분 기존 기술 검정시험

PAST

평가 대상 도구 사용법, 네트워크 지식 등 논리적 사고력, 알고리즘 설계, 코딩 스킬
방식 선택지 기반 실제 프로그램 작성 & 실행
채점 객관식/주관식 자동 채점 (테스트 케이스 기반)
환경 오프라인 온라인 (인터넷 검색 허용)

핵심은, 시대에 따라 변하는 특정 도구나 프레임워크의 사용법이 아니라 프로그래밍의 근간에 있는 논리적 사고력 — 효율적인 로직을 빠르고 정확하게 기술하는 능력 — 을 측정한다는 점입니다.

PAST 문제 풀이 흐름

PAST에서 높은 점수를 얻기 위해서는 다음 세 단계를 효율적으로 수행해야 합니다:

1. 문제 설정을 이해하고, 풀어야 할 문제를 명확히 한다
        ↓
2. 문제를 풀기 위한 알고리즘을 설계한다
        ↓
3. 설계한 알고리즘이 올바르게 동작하도록 구현한다

이 과정은 소프트웨어 엔지니어나 데이터 사이언티스트뿐만 아니라, 프로그래밍을 활용하는 모든 직종에서 필요한 기본 역량과 직결됩니다.

시험 형식

시험 요항

항목 내용
문제 수 15문제 (A ~ O)
만점 100점
시험 시간 5시간 (중간 휴식 없음)
수험 방식 온라인 (실시간 수험 / 통상 수험)
개최 빈도 연 4회 (3, 6, 9, 12월 첫째 토요일)
사용 언어 40종 이상 (Python, C++, Java, Rust 등)

배점 구조

문제는 A부터 O까지 15문제로 구성되며, 뒤로 갈수록 난이도가 높아집니다:

문제 A B · C D ~ F G ~ O
배점 9점 각 8점 각 7점 각 6점
  • 앞쪽 문제(A~C): 기초적이고 풀기 쉬운 문제가 주로 출제
  • 중간 문제(D~F): G 이후 문제보다 오히려 풀기 쉬운 경우가 많음
  • 후반 문제(G~O): 난이도가 높아지며, 고급 알고리즘과 데이터 구조 활용이 필요

수험 방식

방식 특징
실시간 수험 정해진 시각에 시작. 인증서에 실시간 마크 부여. 출제자에게 질문 가능
통상 수험 수험 가능 기간(약 3개월) 내 원하는 시간에 시작. 일정 조율이 유연

채점 시스템

PAST에서는 제출한 프로그램이 자동으로 채점됩니다:

  1. 수험자가 코드를 작성하여 제출
  2. PAST 테스트 서버에서 여러 테스트 케이스로 자동 실행
  3. 모든 테스트 케이스를 통과하면 정답으로 판정

"코드 미학"과 같은 주관적 기준은 존재하지 않으며, 올바른 출력을 내는지 여부만 평가합니다.

랭크 체계

PAST는 취득 점수에 따라 5단계 랭크를 인정합니다. 이 랭크는 AtCoder 공식 인증으로 발급됩니다.

랭크 점수 의미
엔트리 25 ~ 39점 A~C 3문제를 확실히 풀면 도달
초급 40 ~ 59점 엔트리 + D~F 중 3문제 추가
중급 60 ~ 79점 A~F 6문제 + G~O 중 3문제
상급 80 ~ 89점 15문제 중 못 푸는 문제가 3문제 이내
엑스퍼트 90 ~ 100점 15문제 중 14문제 이상 풀이. 사실상 거의 모든 문제를 해결해야 함

본 시리즈가 다루는 범위

상급(上級) ~ 엑스퍼트 랭크 달성에 필요한 알고리즘과 테크닉

본 시리즈 학습 로드맵

본 시리즈는 서적의 구성을 따라 上級編(상급편)エキスパート編(엑스퍼트편) 으로 나뉩니다.

1️⃣ 상급편 (Part 1 ~ 8)

상급에 도달하려면 80점 이상이 필요합니다. 이는 "시험에서 못 푸는 문제가 3문제 이내"라는 의미입니다. 중급 수준의 테크닉을 확실히 익히고, 한 단계 더 높은 고급 테크닉의 일부를 해결할 수 있어야 합니다.

Part 주제 서적 출처
Part 1 이분 탐색 심화 — 매개변수 탐색, 평균/중앙값 최대화 第1章
Part 2 동적 계획법 심화 (1) — DP 복습 & 상태 전이 DP 第2章 전반
Part 3 동적 계획법 심화 (2) — 구간 DP, 비트마스크 DP, DP 고속화 第2章 중반
Part 4 동적 계획법 심화 (3) — 트리 DP & 기타 DP 第2章 후반
Part 5 빈출 테크닉 — 변수 고정, 투 포인터, 상각 계산량 第3章
Part 6 빈출 데이터 구조 — UnionFind, 최소 공통 조상(LCA) 第4章
Part 7 네트워크 플로우 — 최대 유량, 최소 비용 유량 第5章
Part 8 세그먼트 트리 — Segment Tree, Lazy Propagation 第6章

2️⃣ 엑스퍼트편 (Part 9 ~ 11)

엑스퍼트에 도달하려면 90점 이상이 필요합니다. 시험에서 못 푸는 문제가 1문제 이내여야 하므로, 최종 문제까지 확실히 풀어낼 수 있어야 합니다. 상급편에서 배운 내용의 조합과 응용이 핵심입니다.

Part 주제 서적 출처
Part 9 세그먼트 트리 위의 DP — DP와 세그먼트 트리의 결합 第7章
Part 10 평면 스캔(Sweep Line) — 테크닉과 데이터 구조의 융합 第8章
Part 11 난문 도전! — 여러 해법을 조합하는 고난도 문제 第9章

이 시리즈의 특징

서적 원문을 단순 번역하지 않습니다

본 시리즈는 서적의 내용을 참고하되, 직접 학습하며 이해한 내용을 한국어로 재구성합니다. 필요에 따라 추가 설명, 다른 관점의 해설, 그리고 보충 예제를 추가합니다.

Java 코드로 재작성

서적의 예제 코드는 Python으로 작성되어 있지만, 본 시리즈에서는 Java를 기반으로 재작성하여 설명합니다. 서적의 원본 Python 소스코드는 GitHub 리포지토리에서 확인할 수 있습니다.

AtCoder 문제와 연결

각 파트에서 다루는 알고리즘/데이터 구조에 대응하는 AtCoder 문제를 함께 소개하여, 이론과 실전을 연결합니다.

참고 자료

다음 파트 예고

[PAST 알고리즘 시리즈] Part 1 — 이분 탐색 심화 (二分探索 発展) 에서는 이분 탐색의 발전적 적용 — 매개변수 탐색, 최솟값의 최대화, 평균값/중앙값 최대화 기법을 다룹니다.

Previous Post

가상 시착(VTON) 모델 최적화 과정

가상 시착 프로젝트 진행 중 겪었던 OmniTry 모델의 리소스 및 UX 이슈를 분석하고, 이를 FastFit 아키텍처 도입을 통해 해결한 과정에 대해 이야기합니다.

가상 시착(VTON) 모델 최적화 과정

Next Post

[PAST 알고리즘 시리즈] Part 1 — 이분 탐색 심화 (二分探索 発展)

판정 문제와 단조성을 활용한 최솟값 최대화, 평균값 및 중앙값 최대화 등 고급 이분 탐색 테크닉에 대하여 이야기합니다.

[PAST 알고리즘 시리즈] Part 1 — 이분 탐색 심화 (二分探索 発展)

Recommended Reading

scroll to top