학습 본문으로 건너뛰기
VAIRODE
배열과 list44번째 작은 수업
오늘은 질문 하나만 해결해요44 / 72

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

겹치는 이동의 방향 안전성

오늘의 질문

source와 destination range가 겹치면 아직 읽지 않은 값을 덮지 않는 이동 방향 또는 overlap-safe primitive를 선택한다. 이를 생략하면 오른쪽 shift를 앞에서부터 복사해 한 값을 suffix 전체에 반복하거나 API의 overlap 사전조건을 위반한다.에서도 이름과 평균적 인상만으로 그럴듯한 선택을 만들 수 있지만, 반증 가능한 sequence 결정은 남길 수 없습니다.

아직 답을 몰라도 괜찮아요. 아래 작은 예시를 보고 먼저 예상해 보세요.

01 · 같이 연습해요

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

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

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

    찾아보기 · 기초

    al44 recognize · 겹치는 이동의 방향 안전성: overlapping range·copy direction·unread source 표식 중 “source와 destination range가 겹치면 아직 읽지 않은 값을 덮지 않는 이동 방향 또는 overlap-safe primitive를 선택한다.”과 일치하는 계약을 고른다.

    이 문제는 주어진 내용과 정답 기준을 더 만드는 중이에요. 지금 적은 답은 연습 메모로만 저장돼요.

    정답 대신 4단계 힌트 보기
    1. 관찰

      오른쪽 shift를 앞에서부터 복사해 한 값을 suffix 전체에 반복하거나 API의 overlap 사전조건을 위반한다. 직전까지 참이었던 sequence 불변식과 처음 달라진 observer를 찾으세요.

    2. 개념

      overlapping range·copy direction·unread source를 의미·비용·유효성으로 나눠 적으세요.

    3. 다음 도움

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

    정답과 비교
  2. 02

    먼저 생각하기 · 기초

    al44 predict · 겹치는 이동의 방향 안전성: “오른쪽 shift를 앞에서부터 복사해 한 값을 suffix 전체에 반복하거나 API의 overlap 사전조건을 위반한다.” 조건에서 상태·비용·observer 유효성을 실행 전에 봉인한다.

    이 문제는 주어진 내용과 정답 기준을 더 만드는 중이에요. 지금 적은 답은 연습 메모로만 저장돼요.

    정답 대신 4단계 힌트 보기
    1. 관찰

      오른쪽 shift를 앞에서부터 복사해 한 값을 suffix 전체에 반복하거나 API의 overlap 사전조건을 위반한다. 직전까지 참이었던 sequence 불변식과 처음 달라진 observer를 찾으세요.

    2. 개념

      overlapping range·copy direction·unread source를 의미·비용·유효성으로 나눠 적으세요.

    3. 다음 도움

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

    움직임과 비교
  3. 03

    순서 따라가기 · 익힌 것을 써보기

    al44 trace · 겹치는 이동의 방향 안전성: overlapping range → copy direction → unread source 순서로 각 write 전에 unread source가 보존되는지 표시한 overlap trace가 만들어질 때까지 상태 전이를 추적한다.

    이 문제는 주어진 내용과 정답 기준을 더 만드는 중이에요. 지금 적은 답은 연습 메모로만 저장돼요.

    정답 대신 4단계 힌트 보기
    1. 관찰

      오른쪽 shift를 앞에서부터 복사해 한 값을 suffix 전체에 반복하거나 API의 overlap 사전조건을 위반한다. 직전까지 참이었던 sequence 불변식과 처음 달라진 observer를 찾으세요.

    2. 개념

      overlapping range·copy direction·unread source를 의미·비용·유효성으로 나눠 적으세요.

    3. 다음 도움

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

    움직임과 비교
  4. 04

    내 말로 설명하기 · 익힌 것을 써보기

    al44 explain · 겹치는 이동의 방향 안전성: source와 destination range가 겹치면 아직 읽지 않은 값을 덮지 않는 이동 방향 또는 overlap-safe primitive를 선택한다.이 필요한 이유와 각 write 전에 unread source가 보존되는지 표시한 overlap trace만으로는 보장할 수 없는 범위를 설명한다.

    이 문제는 주어진 내용과 정답 기준을 더 만드는 중이에요. 지금 적은 답은 연습 메모로만 저장돼요.

    정답 대신 4단계 힌트 보기
    1. 관찰

      오른쪽 shift를 앞에서부터 복사해 한 값을 suffix 전체에 반복하거나 API의 overlap 사전조건을 위반한다. 직전까지 참이었던 sequence 불변식과 처음 달라진 observer를 찾으세요.

    2. 개념

      overlapping range·copy direction·unread source를 의미·비용·유효성으로 나눠 적으세요.

    3. 다음 도움

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

    설명 기준과 비교
  5. 05

    빈칸 채우기 · 익힌 것을 써보기

    al44 complete · 겹치는 이동의 방향 안전성: 누락된 불변식·경계·이동량·유효성 칸을 채워 “left/right shift와 arbitrary overlap에서 안전한 iteration order를 유도한다.”을 완성한다.

    이 문제는 주어진 내용과 정답 기준을 더 만드는 중이에요. 지금 적은 답은 연습 메모로만 저장돼요.

    정답 대신 4단계 힌트 보기
    1. 관찰

      오른쪽 shift를 앞에서부터 복사해 한 값을 suffix 전체에 반복하거나 API의 overlap 사전조건을 위반한다. 직전까지 참이었던 sequence 불변식과 처음 달라진 observer를 찾으세요.

    2. 개념

      overlapping range·copy direction·unread source를 의미·비용·유효성으로 나눠 적으세요.

    3. 다음 도움

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

    답과 설명 함께 비교
  6. 06

    틀린 곳 고치기 · 익힌 것을 써보기

    al44 debug · 겹치는 이동의 방향 안전성: AI가 만든 분석에 “오른쪽 shift를 앞에서부터 복사해 한 값을 suffix 전체에 반복하거나 API의 overlap 사전조건을 위반한다.”를 주입하고 최초 잘못된 가정만 수정한다.

    이 문제는 주어진 내용과 정답 기준을 더 만드는 중이에요. 지금 적은 답은 연습 메모로만 저장돼요.

    정답 대신 4단계 힌트 보기
    1. 관찰

      오른쪽 shift를 앞에서부터 복사해 한 값을 suffix 전체에 반복하거나 API의 overlap 사전조건을 위반한다. 직전까지 참이었던 sequence 불변식과 처음 달라진 observer를 찾으세요.

    2. 개념

      overlapping range·copy direction·unread source를 의미·비용·유효성으로 나눠 적으세요.

    3. 다음 도움

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

    답과 설명 함께 비교
  7. 07

    직접 만들기 · 새 문제

    al44 implement · 겹치는 이동의 방향 안전성: left/right shift와 arbitrary overlap에서 안전한 iteration order를 유도한다.을 frozen synthetic sequence에 적용해 각 write 전에 unread source가 보존되는지 표시한 overlap trace를 생성한다.

    이 문제는 주어진 내용과 정답 기준을 더 만드는 중이에요. 지금 적은 답은 연습 메모로만 저장돼요.

    정답 대신 4단계 힌트 보기
    1. 관찰

      오른쪽 shift를 앞에서부터 복사해 한 값을 suffix 전체에 반복하거나 API의 overlap 사전조건을 위반한다. 직전까지 참이었던 sequence 불변식과 처음 달라진 observer를 찾으세요.

    2. 개념

      overlapping range·copy direction·unread source를 의미·비용·유효성으로 나눠 적으세요.

    3. 다음 도움

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

    정답과 비교
  8. 08

    새 문제에 써보기 · 새 문제

    al44 transfer · 겹치는 이동의 방향 안전성: in-place editor buffer·packet compaction·array rotation로 판단을 옮겨 보존할 sequence semantics와 달라지는 비용·수명 규칙을 방어한다.

    이 문제는 주어진 내용과 정답 기준을 더 만드는 중이에요. 지금 적은 답은 연습 메모로만 저장돼요.

    정답 대신 4단계 힌트 보기
    1. 관찰

      오른쪽 shift를 앞에서부터 복사해 한 값을 suffix 전체에 반복하거나 API의 overlap 사전조건을 위반한다. 직전까지 참이었던 sequence 불변식과 처음 달라진 observer를 찾으세요.

    2. 개념

      overlapping range·copy direction·unread source를 의미·비용·유효성으로 나눠 적으세요.

    3. 다음 도움

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

    설명 기준과 비교

8개 답이 남았습니다.

02 · 막힌 곳을 찾아요

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

헷갈림 01

오른쪽 shift를 앞에서부터 복사해 한 값을 suffix 전체에 반복하거나 API의 overlap 사전조건을 위반한다.

겉으로 보이는 막힘
겹치는 이동의 방향 안전성 코드가 일부 예시는 통과하지만 크기·순서·별칭·유효성 중 하나를 재현할 수 없다.
막힌 까닭
source와 destination range가 겹치면 아직 읽지 않은 값을 덮지 않는 이동 방향 또는 overlap-safe primitive를 선택한다.을 구현 전에 봉인하지 않았다.
다시 해보는 방법
left/right shift와 arbitrary overlap에서 안전한 iteration order를 유도한다.에서 pre/post-state와 허용 연산을 고정하고 각 write 전에 unread source가 보존되는지 표시한 overlap trace를 다시 만든다.
헷갈림 02

overlapping range 비용만 세고 탐색·이동·할당·element operation을 생략한다.

겉으로 보이는 막힘
in-place editor buffer·packet compaction·array rotation의 실제 operation mix가 바뀌면 선택 판정이 뒤집힌다.
막힌 까닭
primitive operation과 worst·amortized·observed 층을 분리하지 않았다.
다시 해보는 방법
각 write 전에 unread source가 보존되는지 표시한 overlap trace에 총비용 ledger와 결정이 바뀌는 최소 workload를 추가한다.
헷갈림 03

unread source observer가 남아 있다는 이유만으로 owner 변이 뒤에도 유효하다고 가정한다.

겉으로 보이는 막힘
stale index·iterator·reference·view가 잘못된 원소를 가리키거나 사전조건을 위반한다.
막힌 까닭
구조 변경 전후의 invalidation·lifetime 계약을 기록하지 않았다.
다시 해보는 방법
오른쪽 shift를 앞에서부터 복사해 한 값을 suffix 전체에 반복하거나 API의 overlap 사전조건을 위반한다. fixture에서 observer set을 재검증하고 무효 observer를 재획득하거나 사용을 거절한다.

03 · 내게 맞는 도움 고르기

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

안내 받으며

안내형

overlapping range · copy direction · unread source 카드와 pre/post-state 표를 제공하고 색상 외에도 owner·size·capacity·validity label을 표시한다.

겹치는 이동의 방향 안전성에서 sequence 계약과 변이 전후 상태를 추적해 총비용과 observer 유효성을 판정하는 설명도에서 색상뿐 아니라 owner·size·capacity·link·observer·claim-level을 문자와 선 종류로 함께 표시한다.
혼자 해보기

내 힘으로

겹치는 이동의 방향 안전성의 미공개 sequence에서 계약·총비용·observer 유효성을 독립 재구성하는 능력의 처음 보는 frozen synthetic sequence를 AI 없이 먼저 분석하고 pre/post-state·총비용·observer 판정을 봉인한 뒤 실행 관찰과 대조한다.

공식 정의·API 문법·도구 사용법은 열 수 있지만 해당 변형의 최종 sequence, exact move/link count, invalidation verdict, hidden fixture와 최종 candidate는 먼저 제공하지 않는다.
더 도전하기

심화형

in-place editor buffer·packet compaction·array rotation에서 element cost·allocator·alias graph 중 두 축을 추가하고 선택이 바뀌는 최소 workload를 찾는다.

더 정밀한 상태·메모리 ledger는 오류 탐지력을 높이지만 문서 비용도 늘리므로 decision-changing invariant와 observer를 우선 기록한다.