학습 본문으로 건너뛰기
오늘은 질문 하나만 해결해요64 / 72

따라 해보기 · 직접 바꿔보기

정렬과 찾기 네 방법 비교하기

오늘의 질문

학생 명단, 같은 가격표, 물병 용량, 색 구슬이라는 네 일을 보고 가장 알맞은 줄 세우기·찾기 방법을 고르는 것과 같아요.

아직 답을 몰라도 괜찮아요. 아래 작은 예시를 보고 먼저 예상해 보세요.
왜 배우는지 쉬운 설명 보기

문제 모양, 데이터 모양, 정렬·찾기 방법을 바꿔 보며 정확성·일의 양·공간을 함께 보고 알맞은 방법을 고를 수 있어요.

01 · 같이 연습해요

작은 문제부터 하나씩 직접 풀어봐요

먼저 예상하고, 한 단계씩 확인하고, 막힌 곳을 고쳐 봐요. 도움을 열어도 괜찮아요. 도움을 본 문제는 나중에 모양을 바꿔 다시 풀어보면 됩니다.

연습에서 작성 중인 답0 / 8
  1. 01

    찾아보기 · 기초

    정렬과 찾기 네 방법 비교하기: 입력에서 줄 세우는 기준과 찾으려는 답을 먼저 표시하세요.

    짧은 이야기

    ORDER LAB은 stable-record-order, duplicate-range-query, monotone-answer-boundary, bounded-integer-batch와 네 정책을 비교한다.

    이번에 해볼 것

    4×4 capability 표를 작성하세요. 각 정책이 만드는 order, [lo, hi), stability, comparator·predicate와 domain을 구분하고 첫 unmet contract를 표시하세요.

    먼저 볼 것
    • linear-baseline은 모든 항목을 입력 순서로 확인하지만 정렬 결과를 만들지는 않는다.
    • stable-comparison-bound는 안정 비교 정렬과 half-open lower·upper boundary를 제공한다.
    • partition-sort-bound는 in-place partition order와 exact match 하나를 제공하지만 stable order와 전체 duplicate range는 보장하지 않는다.
    • counting-radix-domain은 bounded integer validation, count·prefix와 안정 배치를 제공하지만 복합 comparator는 받지 않는다.
    • 우연히 같은 작은 출력과 workload 계약 충족은 같은 주장이 아니다.
    정답 대신 4단계 힌트 보기
    1. 먼저 볼 것

      최종 verdict를 모든 phase에 미리 노출하거나 한 policy를 모든 workload·profile에서 보편 최적이라고 표시한다. 직전까지 참이었던 prefix·partition·candidate interval과 처음 달라진 key·index를 찾으세요.

    2. 뜻 풀기

      Order Forge·정렬·탐색 정책·final-only 판정를 problem contract·algorithm state·source claim 층으로 나눠 적으세요.

    3. 다음 도움

      내 생각을 먼저 적고 ‘내 답과 맞춰 볼 기준 보기’을 누르면, 풀 순서와 더 자세한 도움을 열어 드려요.

    정답과 비교

한꺼번에 여덟 문제를 펼치지 않아요. 내 생각을 적고 맞춰 볼 기준을 확인하면 다음 문제 하나만 열립니다.

8개 답이 남았습니다.

02 · 막힌 곳을 찾아요

틀린 답에서 생각이 갈라진 첫 지점 찾기

전부 다시 풀지 않아도 돼요.괜찮아요. 처음 어긋난 한 단계만 찾아요. 결과를 전부 다시 만들지 말고 계약·정확성·일·공간 네 칸 중 처음 실패한 칸부터 확인해요.

막히는 이유와 고치는 방법 자세히 보기같은 곳에서 다시 막혔을 때 필요한 설명만 펼쳐 보세요.
헷갈림 01

최종 verdict를 모든 phase에 미리 노출하거나 한 policy를 모든 workload·profile에서 보편 최적이라고 표시한다.

겉으로 보이는 막힘
Order Forge · 정렬과 찾기 방법 골라보기 구현이 일부 예시는 통과하지만 tie·duplicate·boundary·mutation 결과를 재현하지 못한다.
막힌 까닭
workload의 order/query contract와 input profile을 먼저 봉인하고 linear, stable comparison+bound, partition sort+bound, counting/radix 정책을 같은 추상 비용 단위로 비교한다.을 첫 comparison이나 boundary update 전에 봉인하지 않았다.
다시 해보는 방법
64조합의 comparator/predicate·stability/duplicate·partition/boundary·termination·work/space gate를 독립 model로 재생한다.에서 key/comparator·query·tie·mutation·result contract를 고정하고 4 workload×4 policy×4 profile×4 phase의 256-frame ledger와 final-only verdict matrix를 다시 만든다.
헷갈림 02

최종 배열이나 index만 기록하고 comparison·write·partition·candidate interval 변화를 생략한다.

겉으로 보이는 막힘
stability loss, skipped duplicate, infinite loop, wrong bound 또는 quadratic blow-up의 최초 원인을 찾지 못한다.
막힌 까닭
logical answer와 algorithm state·cost ledger를 분리하지 않았다.
다시 해보는 방법
4 workload×4 policy×4 profile×4 phase의 256-frame ledger와 final-only verdict matrix에 최초 divergence와 transition 전후 invariant를 함께 기록한다.
헷갈림 03

단일 trace나 wall-clock을 모든 runtime·judge·대회·자격·production 결과로 확대한다.

겉으로 보이는 막힘
학생 record·중복 가격 query·최소 capacity·bounded integer batch에서 comparator law·overflow·memory·concurrent mutation·version 경계를 놓친다.
막힌 까닭
표준·알고리즘·library 구현·측정·platform scope를 다른 claim level로 기록하지 않았다.
다시 해보는 방법
최종 verdict를 모든 phase에 미리 노출하거나 한 policy를 모든 workload·profile에서 보편 최적이라고 표시한다. fixture의 claim을 좁히고 versioned source·unknown·measurement·availability를 별도 evidence로 둔다.

03 · 내게 맞는 도움 고르기

같은 목표를 원하는 도움만큼 연습해요

안내 받으며

한 단계씩

네 단계 중 지금 필요한 한 단계만 열어 천천히 따라가요.

도움을 봐도 괜찮아요.
혼자 해보기

내 힘으로

도움말을 닫고 새 카드 문제에서 문제·방법·데이터를 하나씩 바꾸며 같은 네 칸 승인표를 완성해요.

이름과 숫자만 바뀐 작은 문제부터 시작해요.
더 도전하기

하나 더 바꾸기

시작점이나 선 하나를 더 바꾸고, 답이 달라지는지 먼저 예상해요.

한 번에 한 가지만 바꿔요.
내게 맞는 연습 방법 자세히 보기한 단계 도움, 혼자 하기, 한 걸음 더를 쉬운 말로 나눴어요.

한 단계 도움: 그림에서 지금 볼 한 곳만 짚고, 내 생각을 먼저 고른 뒤 다음 칸을 열어요.

혼자 해보기: 도움말을 닫고 새 카드 문제에서 문제·방법·데이터를 하나씩 바꾸며 같은 네 칸 승인표를 완성해요.

한 걸음 더: 한 번에 약속 하나만 바꾸고 답이 어떻게 달라지는지 먼저 예상한 뒤 확인해요.