학습 본문으로 건너뛰기
VAIRODE
동적 계획법 상태 연구소35번째 작은 수업
오늘은 질문 하나만 해결해요35 / 72

처음이어도 괜찮아요 · 그림부터 시작해요

두 목록의 순서를 지키며 같은 항목을 모아요

오늘은 이것 하나만

“두 목록의 순서를 지키며 같은 항목을 모아요”에서 무엇을 먼저 알아야 할까요?

먼저 떠올릴 생활 장면두 친구의 노래 목록에서 순서는 유지하되 둘 다 가진 곡을 가장 길게 고르는 것과 같아요.
  1. 1짧은 이야기 읽기
  2. 2내 생각 하나 고르기
  3. 3네 걸음 같이 보기
  4. 4내 말로 한 줄 적기
오늘의 작은 이야기
먼저 이 장면만 천천히 읽어요

“두 목록의 순서를 지키며 같은 항목을 모아요” 그림에서 무엇이 먼저 달라질지 골라 볼까요?

정답을 몰라도 괜찮아요. 지금 생각과 가장 가까운 것을 골라요.

02 · 낯선 말부터 풀기

정확한 이름보다 먼저 쉬운 뜻을 읽어요

처음 보는 말도 책 읽듯 풀어봐요

이 수업은 쉬운 뜻과 생활 예를 아직 함께 준비하지 못했어요. 설명 없는 정확한 이름은 먼저 보여 주지 않을게요.

그림에서 찾을 쉬운 규칙

  1. 01그림 살펴보기: “두 목록의 순서를 지키며 같은 항목을 모아요”에서 달라지는 사람·칸·횟수 중 하나를 찾아요.
  2. 02작은 질문 만들기: 지금 장면에서 알아야 할 답을 내 말로 한 문장만 말해요.
  3. 03순서대로 이어 보기: 바로 답할 수 있는 가장 작은 장면에서 다음 장면으로 가요.
  4. 04다시 확인하기: 마지막 답이 만들어진 길을 되짚고, 다른 작은 예에서도 같은지 봐요.

03 · 그림으로 보기

두 목록의 순서를 지키며 같은 항목을 모아요 · 기차 좌석 SVG

두 목록의 순서를 지키며 같은 항목을 모아요를 보고, 따라 하고, 다시 해보는 그림생활 질문부터 상태 문장, 점화식 화살표, 독립 검산까지 순서로 보여 주는 정적 SVG: 두 목록의 순서를 지키며 같은 항목을 모아요01오늘의 장면dp35 · 두 친구의 노래목록에서 순서는 유지하되 둘 다가진 곡을 가장 길게 고르는 것과…02첫 걸음그림 살펴보기: “두 목록의 순서를지키며 같은 항목을 모아요”에서달라지는 사람·칸·횟수 중 하나를…03결과 열기내 답을 먼저 적은 뒤 결과를 열어봐요.직접 살펴보는 그림 · 두 순서에서 함께 남는 가장 긴 부분수열의 질문·예측·state·dependency·검산 순서를 한눈에 보여 준다.처음 생각과 달라도 괜찮아요. 달라진 첫 단계만 다시 봐요.
  1. 01오늘의 장면dp35 · 두 친구의 노래 목록에서 순서는 유지하되 둘 다 가진 곡을 가장 길게 고르는 것과 같아요.
  2. 02첫 걸음그림 살펴보기: “두 목록의 순서를 지키며 같은 항목을 모아요”에서 달라지는 사람·칸·횟수 중 하나를 찾아요.
  3. 03결과 열기내 답을 먼저 적은 뒤 결과를 열어 봐요.
두 순서에서 함께 남는 가장 긴 부분수열의 질문·예측·state·dependency·검산 순서를 한눈에 보여 준다.내 생각을 먼저 남기면 결과와 쉬운 설명을 차례로 열 수 있어요.현재 화면: 그림 요약 · 그림을 보는 방법: 정적 SVG의 질문→생활예시→예측→관찰→상태→점화식→검산 순서를 문서 흐름대로 읽는다. · 움직임 없이 보기: 자동 이동이나 전환 없이 같은 state node·dependency arrow·검산 receipt를 정적 SVG와 텍스트로 유지한다.

04 · 책처럼 천천히 되짚기

방금 한 일을 한 줄씩 다시 읽어요

dp35 · 두 친구의 노래 목록에서 순서는 유지하되 둘 다 가진 곡을 가장 길게 고르는 것과 같아요.

이 장면에서 주어진 것tiny-longest-common-subsequence fixture with empty·tie·state-collision·boundary
내 말로 8자 이상 적어요 · 0 / 240

05 · 이제 내가 해볼 차례

여기까지 오면 이런 일을 할 수 있어요

“두 목록의 순서를 지키며 같은 항목을 모아요”에서 무엇을 먼저 알아야 할까요?

  • 그림 살펴보기: “두 목록의 순서를 지키며 같은 항목을 모아요”에서 달라지는 사람·칸·횟수 중 하나를 찾아요.
  • 작은 질문 만들기: 지금 장면에서 알아야 할 답을 내 말로 한 문장만 말해요.
  • 순서대로 이어 보기: 바로 답할 수 있는 가장 작은 장면에서 다음 장면으로 가요.
  • 다시 확인하기: 마지막 답이 만들어진 길을 되짚고, 다른 작은 예에서도 같은지 봐요.
오늘 해낼 일과 다 했다고 볼 기준 보기쉬운 순서를 익힌 뒤 더 정확히 확인하고 싶을 때 열어요.

코드 전에 다음 계약을 적는다: dp[i][j]는 첫 목록 앞 i개와 둘째 목록 앞 j개의 LCS 길이다. 같으면 dp[i-1][j-1]+1, 다르면 max(dp[i-1][j],dp[i][j-1])를 첫 행·열 0에서 계산한다. 이어서 다음 위험을 collision witness·귀납·독립 oracle·mutant·비용 receipt 중 맞는 증거로 확인한다: 공통 항목의 개수만 세어 순서 제약을 잃거나 다를 때 대각선만 본다.

  • dp35의 state가 답하는 질문과 모든 index 의미를 생활 말로 설명한다.
  • dp35의 recurrence 경우·base·dependency order를 빠짐없이 적는다.
  • dp35의 실제 답을 복원하고 correctness와 state×transition 비용을 분리한다.
  • dp35 AI 후보와 expected oracle이 recurrence·cache·tie helper를 공유하지 않게 한다.

06 · 자주 헷갈리는 지점

틀린 답도 이유를 알면 다음에는 맞힐 수 있어요

처음부터 모두 맞힐 필요는 없어요.괜찮아요. 마지막 숫자는 잠시 가리고 “두 목록의 순서를 지키며 같은 항목을 모아요” 그림에서 먼저 달라지는 한 곳만 다시 찾아봐요.

헷갈리기 쉬운 이유 세 가지 보기내가 어디에서 다르게 생각했는지 찾고 싶을 때 열어요.
01dp35에서 같은 숫자가 나오면 같은 state다.

한 번 더 생각해 볼 질문같은 숫자지만 다음 합법 선택이 다른 두 이력을 만들 수 있는가?

이렇게 고쳐 생각해요state는 저장된 숫자가 아니라 앞으로 답할 부분 문제와 필요한 정보의 계약이다.

02dp35 점화식을 적었으므로 모든 입력에서 맞다.

한 번 더 생각해 볼 질문빠진 마지막 선택·겹친 경우·도달 불가 base 중 어느 반례가 있는가?

이렇게 고쳐 생각해요경우가 완전하고 배타적인지, base가 참인지, 더 작은 상태의 정확성이 원래 답으로 이어지는지 증명해야 한다.

03dp35 표가 자연스럽게 채워지므로 상태와 비용이 증명됐다.

한 번 더 생각해 볼 질문같은 animation을 보이면서 틀린 loop order나 불충분 state를 가진 mutant를 만들 수 있는가?

이렇게 고쳐 생각해요animation은 관찰 도구이며 독립 oracle·proof·state 수·transition work receipt를 대신하지 않는다.

07 · 더 궁금할 때만 보기

선생님과 검토자를 위한 믿을 만한 원문

원문과 어디까지 참고했는지 펼쳐 보기처음 배우는 동안에는 열지 않아도 괜찮아요.