✍️ 연플래닝 오리지널 — 「아하! 보이는 직관수학」 자체 제작. 모든 문제·정답 손검산 완료. 답안을 제출해야 해설·정답이 열립니다(먼저 스스로 풀어 보세요).
💬 더 필요한 게 있나요?
난이도 조절(더 쉽게 / 더 어렵게) · 다른 유형 · 특정 개념 집중 · 문항 수 등 무엇이든 적어 주세요. 선생님이 확인합니다. (공개 아님)
✏️ 손으로 풀어보세요
`; return s;
}
// ── 직육면체 (겨냥도) ──
function box(cfg){
const {a=5, b=3, c=4, note='', H=215, U=17, hi=''} = cfg;
const w=a*U, d=b*U*0.52, h=c*U;
// 좌우 라벨('높이 n' ~46px / '세로 n' ~46px)이 잘리지 않게 여백 확보 + 폭 자동 계산
const ox=62, oy=H-62;
const W = Math.max(250, ox + w + d + 62);
const F=[[0,0],[w,0],[w,-h],[0,-h]]; // 앞면
const B=F.map(p=>[p[0]+d, p[1]-d]); // 뒷면
let s=``; return s;
}
const P=[
{ tier:'기초', type:'self', kind:'num',
q:'직육면체의 면은 몇 개일까요?',
fig:box({a:5,b:3,c:4,note:'직육면체'}),
answer:6,
hint:'직육면체 겨냥도를 보며 직접 세어 보세요.',
sol:{ ans:'6', fig:null,
steps:['주사위를 떠올려 보세요. 앞·뒤·위·아래·좌·우.','모두 6개예요.','면 6개 — 그래서 육면체!']}},
{ tier:'기초', type:'self', kind:'num',
q:'직육면체의 모서리는 몇 개일까요?',
fig:box({a:5,b:3,c:4,note:'직육면체'}),
answer:12,
hint:'직육면체 겨냥도를 보며 직접 세어 보세요.',
sol:{ ans:'12', fig:null,
steps:['모서리 = 면과 면이 만나는 선.','위 4개 + 아래 4개 + 기둥 4개 = 12개.','모서리 12개!']}},
{ tier:'기초', type:'self', kind:'num',
q:'직육면체의 꼭짓점은 몇 개일까요?',
fig:box({a:5,b:3,c:4,note:'직육면체'}),
answer:8,
hint:'직육면체 겨냥도를 보며 직접 세어 보세요.',
sol:{ ans:'8', fig:null,
steps:['꼭짓점 = 모서리가 만나는 점.','위 4개 + 아래 4개 = 8개.','꼭짓점 8개!']}},
{ tier:'기초', type:'self', kind:'num',
q:'직육면체에서 마주 보는 면은 몇 쌍일까요?',
fig:box({a:5,b:3,c:4,note:'직육면체'}),
answer:3,
hint:'직육면체 겨냥도를 보며 직접 세어 보세요.',
sol:{ ans:'3', fig:null,
steps:['앞-뒤, 위-아래, 좌-우.','모두 3쌍이에요.','6개의 면이 2개씩 짝을 이뤄요!']}},
{ tier:'기초', type:'self', kind:'choice',
q:'직육면체의 각 면은 무슨 모양일까요?',
fig:box({a:5,b:3,c:4,note:'직육면체'}),
choices:['직사각형','삼각형','원','오각형'], answer:'직사각형',
hint:'직육면체 겨냥도를 보며 직접 세어 보세요.',
sol:{ ans:'직사각형', fig:null,
steps:['직육면체의 모든 면은 직사각형이에요.','(정육면체면 모두 정사각형!)','이름에 「직」이 들어간 이유예요!']}},
{ tier:'기초', type:'self', kind:'num',
q:'정육면체의 면은 몇 개일까요?',
fig:box({a:5,b:3,c:4,note:'직육면체'}),
answer:6,
hint:'직육면체 겨냥도를 보며 직접 세어 보세요.',
sol:{ ans:'6', fig:null,
steps:['정육면체도 육면체 — 면이 6개.','다만 모든 면이 정사각형.','주사위가 바로 정육면체예요!']}},
{ tier:'기초', type:'self', kind:'choice',
q:'정육면체의 모든 모서리의 길이는 어떨까요?',
fig:box({a:5,b:3,c:4,note:'직육면체'}),
choices:['모두 같다','모두 다르다','2개만 같다','알 수 없다'], answer:'모두 같다',
hint:'직육면체 겨냥도를 보며 직접 세어 보세요.',
sol:{ ans:'모두 같다', fig:null,
steps:['정육면체는 가로 = 세로 = 높이.','그래서 12개 모서리가 모두 같아요.','정육면체 = 특별한 직육면체(모서리가 다 같은)!']}},
{ tier:'기초', type:'self', kind:'num',
q:'직육면체에서 한 꼭짓점에 모이는 모서리는 몇 개일까요?',
fig:box({a:5,b:3,c:4,note:'직육면체'}),
answer:3,
hint:'직육면체 겨냥도를 보며 직접 세어 보세요.',
sol:{ ans:'3', fig:null,
steps:['한 모퉁이를 보세요. 가로·세로·높이 방향.','3개가 모여요.','그래서 한 꼭짓점에서 세 방향으로 뻗어 나가요!']}},
{ tier:'기초', type:'self', kind:'num',
q:'직육면체에서 한 면과 마주 보는 면은 몇 개일까요?',
fig:box({a:5,b:3,c:4,note:'직육면체'}),
answer:1,
hint:'직육면체 겨냥도를 보며 직접 세어 보세요.',
sol:{ ans:'1', fig:null,
steps:['앞면과 마주 보는 건 뒷면 하나.','1개예요.','6개 면이 3쌍으로 짝지어져요!']}},
{ tier:'기초', type:'self', kind:'choice',
q:'정육면체는 직육면체라고 할 수 있을까요?',
fig:box({a:5,b:3,c:4,note:'직육면체'}),
choices:['그렇다','아니다','면이 6개일 때만','알 수 없다'], answer:'그렇다',
hint:'직육면체 겨냥도를 보며 직접 세어 보세요.',
sol:{ ans:'그렇다', fig:null,
steps:['직육면체 = 모든 면이 직사각형인 입체.','정육면체의 면은 정사각형인데, 정사각형도 직사각형이에요.','그래서 정육면체는 직육면체에 포함돼요! (평면의 정사각형-직사각형 관계와 똑같아요)']}},
{ tier:'중급', type:'self', kind:'num',
q:'가로 5 cm, 세로 3 cm, 높이 4 cm 인 직육면체의 부피는 몇 cm³ 일까요?',
fig:box({a:5,b:3,c:4,note:'부피는?'}),
answer:60,
hint:'가로 × 세로 × 높이!',
sol:{ ans:'60 cm³', fig:null,
steps:['바닥에 1 cm 짜리 상자를 5 × 3 = 15개 깔 수 있어요.','그걸 4층 쌓으면 15 × 4 = 60개.','부피 = 가로 × 세로 × 높이 = 60 cm³. 작은 상자 몇 개가 들어가나를 센 거예요!']}},
{ tier:'중급', type:'self', kind:'num',
q:'가로 6 cm, 세로 2 cm, 높이 3 cm 인 직육면체의 부피는 몇 cm³ 일까요?',
fig:box({a:6,b:2,c:3,note:'부피는?'}),
answer:36,
hint:'가로 × 세로 × 높이!',
sol:{ ans:'36 cm³', fig:null,
steps:['바닥에 1 cm 짜리 상자를 6 × 2 = 12개 깔 수 있어요.','그걸 3층 쌓으면 12 × 3 = 36개.','부피 = 가로 × 세로 × 높이 = 36 cm³. 작은 상자 몇 개가 들어가나를 센 거예요!']}},
{ tier:'중급', type:'self', kind:'num',
q:'가로 4 cm, 세로 4 cm, 높이 4 cm 인 직육면체의 부피는 몇 cm³ 일까요?',
fig:box({a:4,b:4,c:4,note:'부피는?'}),
answer:64,
hint:'가로 × 세로 × 높이!',
sol:{ ans:'64 cm³', fig:null,
steps:['바닥에 1 cm 짜리 상자를 4 × 4 = 16개 깔 수 있어요.','그걸 4층 쌓으면 16 × 4 = 64개.','부피 = 가로 × 세로 × 높이 = 64 cm³. 작은 상자 몇 개가 들어가나를 센 거예요!']}},
{ tier:'중급', type:'self', kind:'num',
q:'가로 7 cm, 세로 3 cm, 높이 2 cm 인 직육면체의 부피는 몇 cm³ 일까요?',
fig:box({a:7,b:3,c:2,note:'부피는?'}),
answer:42,
hint:'가로 × 세로 × 높이!',
sol:{ ans:'42 cm³', fig:null,
steps:['바닥에 1 cm 짜리 상자를 7 × 3 = 21개 깔 수 있어요.','그걸 2층 쌓으면 21 × 2 = 42개.','부피 = 가로 × 세로 × 높이 = 42 cm³. 작은 상자 몇 개가 들어가나를 센 거예요!']}},
{ tier:'중급', type:'self', kind:'num',
q:'가로 8 cm, 세로 5 cm, 높이 3 cm 인 직육면체의 부피는 몇 cm³ 일까요?',
fig:box({a:8,b:5,c:3,note:'부피는?'}),
answer:120,
hint:'가로 × 세로 × 높이!',
sol:{ ans:'120 cm³', fig:null,
steps:['바닥에 1 cm 짜리 상자를 8 × 5 = 40개 깔 수 있어요.','그걸 3층 쌓으면 40 × 3 = 120개.','부피 = 가로 × 세로 × 높이 = 120 cm³. 작은 상자 몇 개가 들어가나를 센 거예요!']}},
{ tier:'중급', type:'self', kind:'num',
q:'가로 3 cm, 세로 3 cm, 높이 6 cm 인 직육면체의 부피는 몇 cm³ 일까요?',
fig:box({a:3,b:3,c:6,note:'부피는?'}),
answer:54,
hint:'가로 × 세로 × 높이!',
sol:{ ans:'54 cm³', fig:null,
steps:['바닥에 1 cm 짜리 상자를 3 × 3 = 9개 깔 수 있어요.','그걸 6층 쌓으면 9 × 6 = 54개.','부피 = 가로 × 세로 × 높이 = 54 cm³. 작은 상자 몇 개가 들어가나를 센 거예요!']}},
{ tier:'중급', type:'self', kind:'num',
q:'가로 10 cm, 세로 4 cm, 높이 2 cm 인 직육면체의 부피는 몇 cm³ 일까요?',
fig:box({a:10,b:4,c:2,note:'부피는?'}),
answer:80,
hint:'가로 × 세로 × 높이!',
sol:{ ans:'80 cm³', fig:null,
steps:['바닥에 1 cm 짜리 상자를 10 × 4 = 40개 깔 수 있어요.','그걸 2층 쌓으면 40 × 2 = 80개.','부피 = 가로 × 세로 × 높이 = 80 cm³. 작은 상자 몇 개가 들어가나를 센 거예요!']}},
{ tier:'중급', type:'self', kind:'num',
q:'가로 5 cm, 세로 5 cm, 높이 5 cm 인 직육면체의 부피는 몇 cm³ 일까요?',
fig:box({a:5,b:5,c:5,note:'부피는?'}),
answer:125,
hint:'가로 × 세로 × 높이!',
sol:{ ans:'125 cm³', fig:null,
steps:['바닥에 1 cm 짜리 상자를 5 × 5 = 25개 깔 수 있어요.','그걸 5층 쌓으면 25 × 5 = 125개.','부피 = 가로 × 세로 × 높이 = 125 cm³. 작은 상자 몇 개가 들어가나를 센 거예요!']}},
{ tier:'중급', type:'self', kind:'num',
q:'가로 6 cm, 세로 4 cm, 높이 5 cm 인 직육면체의 부피는 몇 cm³ 일까요?',
fig:box({a:6,b:4,c:5,note:'부피는?'}),
answer:120,
hint:'가로 × 세로 × 높이!',
sol:{ ans:'120 cm³', fig:null,
steps:['바닥에 1 cm 짜리 상자를 6 × 4 = 24개 깔 수 있어요.','그걸 5층 쌓으면 24 × 5 = 120개.','부피 = 가로 × 세로 × 높이 = 120 cm³. 작은 상자 몇 개가 들어가나를 센 거예요!']}},
{ tier:'중급', type:'self', kind:'num',
q:'가로 9 cm, 세로 2 cm, 높이 4 cm 인 직육면체의 부피는 몇 cm³ 일까요?',
fig:box({a:9,b:2,c:4,note:'부피는?'}),
answer:72,
hint:'가로 × 세로 × 높이!',
sol:{ ans:'72 cm³', fig:null,
steps:['바닥에 1 cm 짜리 상자를 9 × 2 = 18개 깔 수 있어요.','그걸 4층 쌓으면 18 × 4 = 72개.','부피 = 가로 × 세로 × 높이 = 72 cm³. 작은 상자 몇 개가 들어가나를 센 거예요!']}},
{ tier:'상위', type:'self', kind:'num',
q:'가로 5, 세로 3, 높이 4 인 직육면체의 겉넓이는 몇 cm² 일까요?',
fig:box({a:5,b:3,c:4,note:'겉넓이(모든 면의 합)는?'}),
answer:94,
hint:'면이 6개인데 마주 보는 면끼리 같아요. 3종류만 구해서 2배!',
sol:{ ans:'94 cm²', fig:null,
steps:['앞·뒤면 = 5 × 4 = 20 (2개), 옆면 = 3 × 4 = 12 (2개), 위·아래면 = 5 × 3 = 15 (2개).','(20 + 12 + 15) × 2 = 94 cm².','겉넓이 = 상자를 펼쳤을 때의 종이 넓이! 마주 보는 면이 같아서 3종류만 구하면 돼요.']}},
{ tier:'상위', type:'self', kind:'num',
q:'가로 6, 세로 2, 높이 3 인 직육면체의 겉넓이는 몇 cm² 일까요?',
fig:box({a:6,b:2,c:3,note:'겉넓이(모든 면의 합)는?'}),
answer:72,
hint:'면이 6개인데 마주 보는 면끼리 같아요. 3종류만 구해서 2배!',
sol:{ ans:'72 cm²', fig:null,
steps:['앞·뒤면 = 6 × 3 = 18 (2개), 옆면 = 2 × 3 = 6 (2개), 위·아래면 = 6 × 2 = 12 (2개).','(18 + 6 + 12) × 2 = 72 cm².','겉넓이 = 상자를 펼쳤을 때의 종이 넓이! 마주 보는 면이 같아서 3종류만 구하면 돼요.']}},
{ tier:'상위', type:'self', kind:'num',
q:'가로 4, 세로 4, 높이 4 인 직육면체의 겉넓이는 몇 cm² 일까요?',
fig:box({a:4,b:4,c:4,note:'겉넓이(모든 면의 합)는?'}),
answer:96,
hint:'면이 6개인데 마주 보는 면끼리 같아요. 3종류만 구해서 2배!',
sol:{ ans:'96 cm²', fig:null,
steps:['앞·뒤면 = 4 × 4 = 16 (2개), 옆면 = 4 × 4 = 16 (2개), 위·아래면 = 4 × 4 = 16 (2개).','(16 + 16 + 16) × 2 = 96 cm².','겉넓이 = 상자를 펼쳤을 때의 종이 넓이! 마주 보는 면이 같아서 3종류만 구하면 돼요.']}},
{ tier:'상위', type:'self', kind:'num',
q:'가로 8, 세로 5, 높이 3 인 직육면체의 겉넓이는 몇 cm² 일까요?',
fig:box({a:8,b:5,c:3,note:'겉넓이(모든 면의 합)는?'}),
answer:158,
hint:'면이 6개인데 마주 보는 면끼리 같아요. 3종류만 구해서 2배!',
sol:{ ans:'158 cm²', fig:null,
steps:['앞·뒤면 = 8 × 3 = 24 (2개), 옆면 = 5 × 3 = 15 (2개), 위·아래면 = 8 × 5 = 40 (2개).','(24 + 15 + 40) × 2 = 158 cm².','겉넓이 = 상자를 펼쳤을 때의 종이 넓이! 마주 보는 면이 같아서 3종류만 구하면 돼요.']}},
{ tier:'상위', type:'self', kind:'num',
q:'가로 10, 세로 4, 높이 2 인 직육면체의 겉넓이는 몇 cm² 일까요?',
fig:box({a:10,b:4,c:2,note:'겉넓이(모든 면의 합)는?'}),
answer:136,
hint:'면이 6개인데 마주 보는 면끼리 같아요. 3종류만 구해서 2배!',
sol:{ ans:'136 cm²', fig:null,
steps:['앞·뒤면 = 10 × 2 = 20 (2개), 옆면 = 4 × 2 = 8 (2개), 위·아래면 = 10 × 4 = 40 (2개).','(20 + 8 + 40) × 2 = 136 cm².','겉넓이 = 상자를 펼쳤을 때의 종이 넓이! 마주 보는 면이 같아서 3종류만 구하면 돼요.']}},
{ tier:'상위', type:'self', kind:'num',
q:'한 모서리가 2 cm 인 정육면체의 부피는 몇 cm³ 일까요?',
fig:box({a:2,b:2,c:2,note:'정육면체 — 부피는?'}),
answer:8,
hint:'정육면체는 가로 = 세로 = 높이 = 2!',
sol:{ ans:'8 cm³', fig:null,
steps:['정육면체는 가로 = 세로 = 높이 = 2 cm.','2 × 2 × 2 = 8 cm³.','같은 수를 세 번 곱해요 — 이걸 나중에 「세제곱」이라고 배워요!']}},
{ tier:'상위', type:'self', kind:'num',
q:'한 모서리가 3 cm 인 정육면체의 부피는 몇 cm³ 일까요?',
fig:box({a:3,b:3,c:3,note:'정육면체 — 부피는?'}),
answer:27,
hint:'정육면체는 가로 = 세로 = 높이 = 3!',
sol:{ ans:'27 cm³', fig:null,
steps:['정육면체는 가로 = 세로 = 높이 = 3 cm.','3 × 3 × 3 = 27 cm³.','같은 수를 세 번 곱해요 — 이걸 나중에 「세제곱」이라고 배워요!']}},
{ tier:'상위', type:'self', kind:'num',
q:'한 모서리가 4 cm 인 정육면체의 부피는 몇 cm³ 일까요?',
fig:box({a:4,b:4,c:4,note:'정육면체 — 부피는?'}),
answer:64,
hint:'정육면체는 가로 = 세로 = 높이 = 4!',
sol:{ ans:'64 cm³', fig:null,
steps:['정육면체는 가로 = 세로 = 높이 = 4 cm.','4 × 4 × 4 = 64 cm³.','같은 수를 세 번 곱해요 — 이걸 나중에 「세제곱」이라고 배워요!']}},
{ tier:'상위', type:'self', kind:'num',
q:'한 모서리가 5 cm 인 정육면체의 부피는 몇 cm³ 일까요?',
fig:box({a:5,b:5,c:5,note:'정육면체 — 부피는?'}),
answer:125,
hint:'정육면체는 가로 = 세로 = 높이 = 5!',
sol:{ ans:'125 cm³', fig:null,
steps:['정육면체는 가로 = 세로 = 높이 = 5 cm.','5 × 5 × 5 = 125 cm³.','같은 수를 세 번 곱해요 — 이걸 나중에 「세제곱」이라고 배워요!']}},
{ tier:'상위', type:'self', kind:'num',
q:'한 모서리가 6 cm 인 정육면체의 부피는 몇 cm³ 일까요?',
fig:box({a:6,b:6,c:6,note:'정육면체 — 부피는?'}),
answer:216,
hint:'정육면체는 가로 = 세로 = 높이 = 6!',
sol:{ ans:'216 cm³', fig:null,
steps:['정육면체는 가로 = 세로 = 높이 = 6 cm.','6 × 6 × 6 = 216 cm³.','같은 수를 세 번 곱해요 — 이걸 나중에 「세제곱」이라고 배워요!']}},
{ tier:'최상위', type:'self', kind:'num',
q:'한 모서리가 3 cm 인 정육면체의 겉넓이는 몇 cm² 일까요?',
fig:null,
answer:54,
hint:'면 하나가 3 × 3. 면이 6개!',
sol:{ ans:'54', fig:null,
steps:['면 하나 = 3 × 3 = 9 cm².','면이 6개.','9 × 6 = 54 cm². 정육면체 겉넓이 = 한 면 × 6!']}},
{ tier:'최상위', type:'self', kind:'num',
q:'직육면체의 모든 모서리 길이의 합은? (가로 5, 세로 3, 높이 4)',
fig:null,
answer:48,
hint:'가로 방향 모서리가 4개, 세로도 4개, 높이도 4개!',
sol:{ ans:'48', fig:null,
steps:['가로 방향 모서리 4개 = 5 × 4 = 20.','세로 방향 4개 = 3 × 4 = 12. 높이 방향 4개 = 4 × 4 = 16.','20 + 12 + 16 = 48 cm. (또는 (5+3+4) × 4 = 48 — 같은 값이에요!)']}},
{ tier:'최상위', type:'self', kind:'num',
q:'모든 모서리를 2배로 늘리면 부피는 몇 배가 될까요?',
fig:null,
answer:8,
hint:'2배 × 2배 × 2배 = ?',
sol:{ ans:'8', fig:null,
steps:['부피 = 가로 × 세로 × 높이.','셋 다 2배 → 2 × 2 × 2 = 8배.','길이는 2배인데 부피는 8배! 넓이가 4배였던 것과 비교해 보세요.']}},
{ tier:'최상위', type:'self', kind:'num',
q:'모든 모서리를 2배로 늘리면 겉넓이는 몇 배가 될까요?',
fig:null,
answer:4,
hint:'겉넓이는 면(넓이)들의 합이에요. 넓이는 2배 × 2배!',
sol:{ ans:'4', fig:null,
steps:['겉넓이 = 면들의 넓이 합.','면 하나가 2배 × 2배 = 4배가 돼요.','면이 6개인 건 그대로니 겉넓이도 4배. (길이 2배 → 넓이 4배 → 부피 8배!)']}},
{ tier:'최상위', type:'self', kind:'num',
q:'부피가 24 cm³ 이고 가로 4 cm, 세로 3 cm 인 직육면체의 높이는?',
fig:null,
answer:2,
hint:'4 × 3 × □ = 24 인 □는?',
sol:{ ans:'2', fig:null,
steps:['부피 = 가로 × 세로 × 높이 → 24 = 4 × 3 × 높이.','12 × 높이 = 24.','높이 = 24 ÷ 12 = 2 cm.']}},
{ tier:'최상위', type:'self', kind:'num',
q:'부피가 27 cm³ 인 정육면체의 한 모서리는 몇 cm 일까요?',
fig:null,
answer:3,
hint:'□ × □ × □ = 27 인 □는?',
sol:{ ans:'3', fig:null,
steps:['정육면체는 세 모서리가 같아요.','3 × 3 × 3 = 27.','한 모서리 = 3 cm.']}},
{ tier:'최상위', type:'self', kind:'num',
q:'1 m³ 는 몇 cm³ 일까요?',
fig:null,
answer:1000000,
hint:'1 m = 100 cm. 100 × 100 × 100 = ?',
sol:{ ans:'1000000', fig:null,
steps:['1 m = 100 cm.','1 m³ = 100 × 100 × 100 cm³.','= 1000000 cm³ (백만!). 길이는 100배인데 부피는 100만 배 — 놀랍죠?']}},
{ tier:'최상위', type:'self', kind:'num',
q:'직육면체를 펼친 그림(전개도)에서 면은 몇 개일까요?',
fig:null,
answer:6,
hint:'펼쳐도 면의 개수는 변할까요?',
sol:{ ans:'6', fig:null,
steps:['전개도는 상자를 펼친 그림.','면의 개수는 그대로 6개.','전개도의 넓이 합 = 겉넓이예요!']}},
{ tier:'최상위', type:'self', kind:'num',
q:'가로 6, 세로 4, 높이 2 인 직육면체와 가로 4, 세로 3, 높이 4 인 직육면체 중 부피가 큰 것은 몇 cm³ 일까요?',
fig:null,
answer:48,
hint:'각각 계산해서 비교하세요.',
sol:{ ans:'48', fig:null,
steps:['첫째: 6 × 4 × 2 = 48 cm³.','둘째: 4 × 3 × 4 = 48 cm³.','둘 다 48 cm³ — 모양은 달라도 부피가 같아요! 부피는 모양이 아니라 세 길이의 곱이에요.']}},
{ tier:'최상위', type:'self', kind:'choice',
q:'같은 부피인데 겉넓이는 다를 수 있을까요?',
fig:null,
choices:['있다','없다','정육면체만','알 수 없다'], answer:'있다',
hint:'1×1×8 과 2×2×2 — 부피는 둘 다 8이에요. 겉넓이는요?',
sol:{ ans:'있다', fig:null,
steps:['1×1×8 → 부피 8, 겉넓이 = 2(1+8+8) = 34 cm².','2×2×2 → 부피 8, 겉넓이 = 2(4+4+4) = 24 cm².','부피는 같은데 겉넓이가 달라요! 길쭉할수록 겉넓이가 커져요 — 정육면체에 가까울수록 겉이 작아요.']}},
];
const TIERS=['기초','중급','상위','최상위'];
const TIER_DESC={기초:'영상만 봐도 바로 풀려요 — 배운 걸 그대로 적용.',중급:'한 번 더 생각 — 거꾸로·변형. 영상 안에 답이 있어요.',상위:'아래 학년 개념(선수 단원)을 함께 써야 풀려요.',최상위:'여러 개념·역발상·함정까지. 최고 난도.'};
let curTier='기초';
function tierProblems(t){ return P.map((p,i)=>({p,i})).filter(o=>o.p.tier===t); }
function renderTabs(){
const tb=document.getElementById('tabs'); tb.innerHTML='';
TIERS.forEach(t=>{ const n=tierProblems(t).length;
const b=document.createElement('button'); b.className='tab'+(t===curTier?' on':''); b.textContent=`${t} (${n})`;
b.onclick=()=>{curTier=t; renderTabs(); renderList();}; tb.appendChild(b); });
document.getElementById('tierNote').textContent=TIER_DESC[curTier];
}
function esc(x){return String(x).replace(/&/g,'&').replace(//g,'>');}
function renderList(){
const L=document.getElementById('list'); L.innerHTML='';
const items=tierProblems(curTier);
if(!items.length){ L.innerHTML='