✍️ 연플래닝 오리지널 — 「아하! 보이는 직관수학」 자체 제작. 모든 문제·정답 손검산 완료. 답안을 제출해야 해설·정답이 열립니다(먼저 스스로 풀어 보세요).
💬 더 필요한 게 있나요?
난이도 조절(더 쉽게 / 더 어렵게) · 다른 유형 · 특정 개념 집중 · 문항 수 등 무엇이든 적어 주세요. 선생님이 확인합니다. (공개 아님)
✏️ 손으로 풀어보세요
`; return s;
}
// ── 기본 도형 그리기 (초1 여러 가지 모양) ──
function shape(cfg){
const {kind='circle', W=200, H=205, label='', note=''} = cfg;
const cx=W/2, cy=80, R=52;
let s=``; return s;
}
const P=[
{ tier:'기초', type:'self', kind:'num',
q:'동그란 모양(원) 의 뾰족한 곳(꼭짓점)은 몇 군데일까요?',
fig:shape({kind:'circle',label:'동그란 모양(원)',note:'뾰족한 곳이 몇 군데일까요?'}),
answer:0,
hint:'그림에서 뾰족하게 튀어나온 곳을 하나씩 세어 보세요.',
sol:{ ans:'0군데', fig:shape({kind:'circle',label:'동그란 모양(원)',note:'뾰족한 곳 0군데'}),
steps:['동그란 모양(원) 를 손가락으로 따라가 보세요.','뾰족한 곳은 0군데.','동그라미는 뾰족한 곳이 없고, 세모는 3개, 네모는 4개예요!']}},
{ tier:'기초', type:'self', kind:'num',
q:'세모 모양(삼각형) 의 뾰족한 곳(꼭짓점)은 몇 군데일까요?',
fig:shape({kind:'triangle',label:'세모 모양(삼각형)',note:'뾰족한 곳이 몇 군데일까요?'}),
answer:3,
hint:'그림에서 뾰족하게 튀어나온 곳을 하나씩 세어 보세요.',
sol:{ ans:'3군데', fig:shape({kind:'triangle',label:'세모 모양(삼각형)',note:'뾰족한 곳 3군데'}),
steps:['세모 모양(삼각형) 를 손가락으로 따라가 보세요.','뾰족한 곳은 3군데.','동그라미는 뾰족한 곳이 없고, 세모는 3개, 네모는 4개예요!']}},
{ tier:'기초', type:'self', kind:'num',
q:'네모 모양(정사각형) 의 뾰족한 곳(꼭짓점)은 몇 군데일까요?',
fig:shape({kind:'square',label:'네모 모양(정사각형)',note:'뾰족한 곳이 몇 군데일까요?'}),
answer:4,
hint:'그림에서 뾰족하게 튀어나온 곳을 하나씩 세어 보세요.',
sol:{ ans:'4군데', fig:shape({kind:'square',label:'네모 모양(정사각형)',note:'뾰족한 곳 4군데'}),
steps:['네모 모양(정사각형) 를 손가락으로 따라가 보세요.','뾰족한 곳은 4군데.','동그라미는 뾰족한 곳이 없고, 세모는 3개, 네모는 4개예요!']}},
{ tier:'기초', type:'self', kind:'num',
q:'길쭉한 네모(직사각형) 의 뾰족한 곳(꼭짓점)은 몇 군데일까요?',
fig:shape({kind:'rect',label:'길쭉한 네모(직사각형)',note:'뾰족한 곳이 몇 군데일까요?'}),
answer:4,
hint:'그림에서 뾰족하게 튀어나온 곳을 하나씩 세어 보세요.',
sol:{ ans:'4군데', fig:shape({kind:'rect',label:'길쭉한 네모(직사각형)',note:'뾰족한 곳 4군데'}),
steps:['길쭉한 네모(직사각형) 를 손가락으로 따라가 보세요.','뾰족한 곳은 4군데.','동그라미는 뾰족한 곳이 없고, 세모는 3개, 네모는 4개예요!']}},
{ tier:'기초', type:'self', kind:'num',
q:'동그란 모양(원) 의 뾰족한 곳(꼭짓점)은 몇 군데일까요?',
fig:shape({kind:'circle',label:'동그란 모양(원)',note:'뾰족한 곳이 몇 군데일까요?'}),
answer:0,
hint:'그림에서 뾰족하게 튀어나온 곳을 하나씩 세어 보세요.',
sol:{ ans:'0군데', fig:shape({kind:'circle',label:'동그란 모양(원)',note:'뾰족한 곳 0군데'}),
steps:['동그란 모양(원) 를 손가락으로 따라가 보세요.','뾰족한 곳은 0군데.','동그라미는 뾰족한 곳이 없고, 세모는 3개, 네모는 4개예요!']}},
{ tier:'기초', type:'self', kind:'num',
q:'세모 모양(삼각형) 의 뾰족한 곳(꼭짓점)은 몇 군데일까요?',
fig:shape({kind:'triangle',label:'세모 모양(삼각형)',note:'뾰족한 곳이 몇 군데일까요?'}),
answer:3,
hint:'그림에서 뾰족하게 튀어나온 곳을 하나씩 세어 보세요.',
sol:{ ans:'3군데', fig:shape({kind:'triangle',label:'세모 모양(삼각형)',note:'뾰족한 곳 3군데'}),
steps:['세모 모양(삼각형) 를 손가락으로 따라가 보세요.','뾰족한 곳은 3군데.','동그라미는 뾰족한 곳이 없고, 세모는 3개, 네모는 4개예요!']}},
{ tier:'기초', type:'self', kind:'num',
q:'네모 모양(정사각형) 의 뾰족한 곳(꼭짓점)은 몇 군데일까요?',
fig:shape({kind:'square',label:'네모 모양(정사각형)',note:'뾰족한 곳이 몇 군데일까요?'}),
answer:4,
hint:'그림에서 뾰족하게 튀어나온 곳을 하나씩 세어 보세요.',
sol:{ ans:'4군데', fig:shape({kind:'square',label:'네모 모양(정사각형)',note:'뾰족한 곳 4군데'}),
steps:['네모 모양(정사각형) 를 손가락으로 따라가 보세요.','뾰족한 곳은 4군데.','동그라미는 뾰족한 곳이 없고, 세모는 3개, 네모는 4개예요!']}},
{ tier:'기초', type:'self', kind:'num',
q:'길쭉한 네모(직사각형) 의 뾰족한 곳(꼭짓점)은 몇 군데일까요?',
fig:shape({kind:'rect',label:'길쭉한 네모(직사각형)',note:'뾰족한 곳이 몇 군데일까요?'}),
answer:4,
hint:'그림에서 뾰족하게 튀어나온 곳을 하나씩 세어 보세요.',
sol:{ ans:'4군데', fig:shape({kind:'rect',label:'길쭉한 네모(직사각형)',note:'뾰족한 곳 4군데'}),
steps:['길쭉한 네모(직사각형) 를 손가락으로 따라가 보세요.','뾰족한 곳은 4군데.','동그라미는 뾰족한 곳이 없고, 세모는 3개, 네모는 4개예요!']}},
{ tier:'기초', type:'self', kind:'num',
q:'동그란 모양(원) 의 뾰족한 곳(꼭짓점)은 몇 군데일까요?',
fig:shape({kind:'circle',label:'동그란 모양(원)',note:'뾰족한 곳이 몇 군데일까요?'}),
answer:0,
hint:'그림에서 뾰족하게 튀어나온 곳을 하나씩 세어 보세요.',
sol:{ ans:'0군데', fig:shape({kind:'circle',label:'동그란 모양(원)',note:'뾰족한 곳 0군데'}),
steps:['동그란 모양(원) 를 손가락으로 따라가 보세요.','뾰족한 곳은 0군데.','동그라미는 뾰족한 곳이 없고, 세모는 3개, 네모는 4개예요!']}},
{ tier:'기초', type:'self', kind:'num',
q:'세모 모양(삼각형) 의 뾰족한 곳(꼭짓점)은 몇 군데일까요?',
fig:shape({kind:'triangle',label:'세모 모양(삼각형)',note:'뾰족한 곳이 몇 군데일까요?'}),
answer:3,
hint:'그림에서 뾰족하게 튀어나온 곳을 하나씩 세어 보세요.',
sol:{ ans:'3군데', fig:shape({kind:'triangle',label:'세모 모양(삼각형)',note:'뾰족한 곳 3군데'}),
steps:['세모 모양(삼각형) 를 손가락으로 따라가 보세요.','뾰족한 곳은 3군데.','동그라미는 뾰족한 곳이 없고, 세모는 3개, 네모는 4개예요!']}},
{ tier:'중급', type:'self', kind:'num',
q:'원 의 곧은 변은 몇 개일까요?',
fig:shape({kind:'circle',label:'원'}),
answer:0,
hint:'곧게 뻗은 선(변)이 몇 개인지 세어 보세요. 둥근 선은 변이 아니에요!',
sol:{ ans:'0개', fig:null,
steps:['원 의 테두리를 따라가며 곧은 선을 세요.','곧은 변은 0개.','원은 둥글기만 해서 곧은 변이 0개예요!']}},
{ tier:'중급', type:'self', kind:'num',
q:'삼각형 의 곧은 변은 몇 개일까요?',
fig:shape({kind:'triangle',label:'삼각형'}),
answer:3,
hint:'곧게 뻗은 선(변)이 몇 개인지 세어 보세요. 둥근 선은 변이 아니에요!',
sol:{ ans:'3개', fig:null,
steps:['삼각형 의 테두리를 따라가며 곧은 선을 세요.','곧은 변은 3개.','원은 둥글기만 해서 곧은 변이 0개예요!']}},
{ tier:'중급', type:'self', kind:'num',
q:'정사각형 의 곧은 변은 몇 개일까요?',
fig:shape({kind:'square',label:'정사각형'}),
answer:4,
hint:'곧게 뻗은 선(변)이 몇 개인지 세어 보세요. 둥근 선은 변이 아니에요!',
sol:{ ans:'4개', fig:null,
steps:['정사각형 의 테두리를 따라가며 곧은 선을 세요.','곧은 변은 4개.','원은 둥글기만 해서 곧은 변이 0개예요!']}},
{ tier:'중급', type:'self', kind:'num',
q:'직사각형 의 곧은 변은 몇 개일까요?',
fig:shape({kind:'rect',label:'직사각형'}),
answer:4,
hint:'곧게 뻗은 선(변)이 몇 개인지 세어 보세요. 둥근 선은 변이 아니에요!',
sol:{ ans:'4개', fig:null,
steps:['직사각형 의 테두리를 따라가며 곧은 선을 세요.','곧은 변은 4개.','원은 둥글기만 해서 곧은 변이 0개예요!']}},
{ tier:'중급', type:'self', kind:'num',
q:'원 의 곧은 변은 몇 개일까요?',
fig:shape({kind:'circle',label:'원'}),
answer:0,
hint:'곧게 뻗은 선(변)이 몇 개인지 세어 보세요. 둥근 선은 변이 아니에요!',
sol:{ ans:'0개', fig:null,
steps:['원 의 테두리를 따라가며 곧은 선을 세요.','곧은 변은 0개.','원은 둥글기만 해서 곧은 변이 0개예요!']}},
{ tier:'중급', type:'self', kind:'num',
q:'삼각형 의 곧은 변은 몇 개일까요?',
fig:shape({kind:'triangle',label:'삼각형'}),
answer:3,
hint:'곧게 뻗은 선(변)이 몇 개인지 세어 보세요. 둥근 선은 변이 아니에요!',
sol:{ ans:'3개', fig:null,
steps:['삼각형 의 테두리를 따라가며 곧은 선을 세요.','곧은 변은 3개.','원은 둥글기만 해서 곧은 변이 0개예요!']}},
{ tier:'중급', type:'self', kind:'num',
q:'정사각형 의 곧은 변은 몇 개일까요?',
fig:shape({kind:'square',label:'정사각형'}),
answer:4,
hint:'곧게 뻗은 선(변)이 몇 개인지 세어 보세요. 둥근 선은 변이 아니에요!',
sol:{ ans:'4개', fig:null,
steps:['정사각형 의 테두리를 따라가며 곧은 선을 세요.','곧은 변은 4개.','원은 둥글기만 해서 곧은 변이 0개예요!']}},
{ tier:'중급', type:'self', kind:'num',
q:'직사각형 의 곧은 변은 몇 개일까요?',
fig:shape({kind:'rect',label:'직사각형'}),
answer:4,
hint:'곧게 뻗은 선(변)이 몇 개인지 세어 보세요. 둥근 선은 변이 아니에요!',
sol:{ ans:'4개', fig:null,
steps:['직사각형 의 테두리를 따라가며 곧은 선을 세요.','곧은 변은 4개.','원은 둥글기만 해서 곧은 변이 0개예요!']}},
{ tier:'중급', type:'self', kind:'num',
q:'원 의 곧은 변은 몇 개일까요?',
fig:shape({kind:'circle',label:'원'}),
answer:0,
hint:'곧게 뻗은 선(변)이 몇 개인지 세어 보세요. 둥근 선은 변이 아니에요!',
sol:{ ans:'0개', fig:null,
steps:['원 의 테두리를 따라가며 곧은 선을 세요.','곧은 변은 0개.','원은 둥글기만 해서 곧은 변이 0개예요!']}},
{ tier:'중급', type:'self', kind:'num',
q:'삼각형 의 곧은 변은 몇 개일까요?',
fig:shape({kind:'triangle',label:'삼각형'}),
answer:3,
hint:'곧게 뻗은 선(변)이 몇 개인지 세어 보세요. 둥근 선은 변이 아니에요!',
sol:{ ans:'3개', fig:null,
steps:['삼각형 의 테두리를 따라가며 곧은 선을 세요.','곧은 변은 3개.','원은 둥글기만 해서 곧은 변이 0개예요!']}},
{ tier:'상위', type:'self', kind:'choice',
q:'바퀴, 접시, 시계는 모두 어떤 모양일까요?',
fig:null,
choices:['동그란 모양(원)','세모 모양','네모 모양','길쭉한 모양'], answer:'동그란 모양(원)',
hint:'그 물건의 테두리 모양을 떠올려 보세요.',
sol:{ ans:'동그란 모양(원)', fig:null,
steps:['물건의 테두리 모양을 생각해요.','답은 동그란 모양(원).','주변 물건을 모양으로 보는 눈이 생기면 재밌어요!']}},
{ tier:'상위', type:'self', kind:'choice',
q:'교통 표지판 중 「양보」 표지판처럼 뾰족한 곳이 3군데인 모양은?',
fig:null,
choices:['동그란 모양','세모 모양(삼각형)','네모 모양','별 모양'], answer:'세모 모양(삼각형)',
hint:'그 물건의 테두리 모양을 떠올려 보세요.',
sol:{ ans:'세모 모양(삼각형)', fig:null,
steps:['물건의 테두리 모양을 생각해요.','답은 세모 모양(삼각형).','주변 물건을 모양으로 보는 눈이 생기면 재밌어요!']}},
{ tier:'상위', type:'self', kind:'choice',
q:'주사위의 한 면, 색종이처럼 네 변의 길이가 모두 같은 모양은?',
fig:null,
choices:['동그란 모양','세모 모양','네모 모양(정사각형)','길쭉한 모양'], answer:'네모 모양(정사각형)',
hint:'그 물건의 테두리 모양을 떠올려 보세요.',
sol:{ ans:'네모 모양(정사각형)', fig:null,
steps:['물건의 테두리 모양을 생각해요.','답은 네모 모양(정사각형).','주변 물건을 모양으로 보는 눈이 생기면 재밌어요!']}},
{ tier:'상위', type:'self', kind:'choice',
q:'굴러가는 모양은 무엇일까요?',
fig:null,
choices:['동그란 모양(원)','세모 모양','네모 모양','모두 굴러간다'], answer:'동그란 모양(원)',
hint:'그 물건의 테두리 모양을 떠올려 보세요.',
sol:{ ans:'동그란 모양(원)', fig:null,
steps:['물건의 테두리 모양을 생각해요.','답은 동그란 모양(원).','주변 물건을 모양으로 보는 눈이 생기면 재밌어요!']}},
{ tier:'상위', type:'self', kind:'choice',
q:'책, 창문, 문처럼 길쭉한 네모 모양은?',
fig:null,
choices:['원','삼각형','직사각형','오각형'], answer:'직사각형',
hint:'그 물건의 테두리 모양을 떠올려 보세요.',
sol:{ ans:'직사각형', fig:null,
steps:['물건의 테두리 모양을 생각해요.','답은 직사각형.','주변 물건을 모양으로 보는 눈이 생기면 재밌어요!']}},
{ tier:'상위', type:'self', kind:'num',
q:'삼각형 의 꼭짓점 수와 변의 수를 더하면 얼마일까요?',
fig:shape({kind:'triangle',label:'삼각형'}),
answer:6,
hint:'꼭짓점 3개 + 변 3개 = ?',
sol:{ ans:'6', fig:null,
steps:['삼각형: 꼭짓점 3개, 변 3개.','3 + 3 = 6.','다각형은 꼭짓점 수와 변의 수가 같아요!']}},
{ tier:'상위', type:'self', kind:'num',
q:'정사각형 의 꼭짓점 수와 변의 수를 더하면 얼마일까요?',
fig:shape({kind:'square',label:'정사각형'}),
answer:8,
hint:'꼭짓점 4개 + 변 4개 = ?',
sol:{ ans:'8', fig:null,
steps:['정사각형: 꼭짓점 4개, 변 4개.','4 + 4 = 8.','다각형은 꼭짓점 수와 변의 수가 같아요!']}},
{ tier:'상위', type:'self', kind:'num',
q:'원 의 꼭짓점 수와 변의 수를 더하면 얼마일까요?',
fig:shape({kind:'circle',label:'원'}),
answer:0,
hint:'꼭짓점 0개 + 변 0개 = ?',
sol:{ ans:'0', fig:null,
steps:['원: 꼭짓점 0개, 변 0개.','0 + 0 = 0.','다각형은 꼭짓점 수와 변의 수가 같아요!']}},
{ tier:'상위', type:'self', kind:'num',
q:'직사각형 의 꼭짓점 수와 변의 수를 더하면 얼마일까요?',
fig:shape({kind:'rect',label:'직사각형'}),
answer:8,
hint:'꼭짓점 4개 + 변 4개 = ?',
sol:{ ans:'8', fig:null,
steps:['직사각형: 꼭짓점 4개, 변 4개.','4 + 4 = 8.','다각형은 꼭짓점 수와 변의 수가 같아요!']}},
{ tier:'상위', type:'self', kind:'num',
q:'삼각형 의 꼭짓점 수와 변의 수를 더하면 얼마일까요?',
fig:shape({kind:'triangle',label:'삼각형'}),
answer:6,
hint:'꼭짓점 3개 + 변 3개 = ?',
sol:{ ans:'6', fig:null,
steps:['삼각형: 꼭짓점 3개, 변 3개.','3 + 3 = 6.','다각형은 꼭짓점 수와 변의 수가 같아요!']}},
{ tier:'최상위', type:'self', kind:'choice',
q:'뾰족한 곳이 하나도 없는 모양은 무엇일까요?',
fig:null,
choices:['동그란 모양(원)','세모 모양','네모 모양','길쭉한 네모'], answer:'동그란 모양(원)',
hint:'굴러가는 그 모양이에요!',
sol:{ ans:'동그란 모양(원)', fig:null,
steps:['원은 테두리가 둥글기만 해서 뾰족한 곳이 0군데.','그래서 잘 굴러가요!','세모·네모는 뾰족한 곳이 있어서 잘 안 굴러가요.']}},
{ tier:'최상위', type:'self', kind:'num',
q:'삼각형과 사각형의 꼭짓점 수 차이는 얼마일까요?',
fig:null,
answer:1,
hint:'삼각형 3개, 사각형 4개.',
sol:{ ans:'1', fig:null,
steps:['삼각형 꼭짓점 3개, 사각형 꼭짓점 4개.','4 − 3 = 1.','이름에 힌트가 있어요 — 삼(3)각형, 사(4)각형!']}},
{ tier:'최상위', type:'self', kind:'num',
q:'꼭짓점이 4개인 모양의 변은 몇 개일까요?',
fig:null,
answer:4,
hint:'다각형은 꼭짓점 수와 변의 수가 같아요.',
sol:{ ans:'4개', fig:null,
steps:['꼭짓점이 4개면 변도 4개.','다각형은 꼭짓점 수 = 변의 수 예요.','네모(사각형)를 떠올려 보세요!']}},
{ tier:'최상위', type:'self', kind:'choice',
q:'정사각형과 직사각형은 모두 꼭짓점이 4개입니다. 두 모양의 다른 점은?',
fig:null,
choices:['꼭짓점 수','변의 수','변의 길이','색깔'], answer:'변의 길이',
hint:'정사각형은 네 변이 모두 같고, 직사각형은?',
sol:{ ans:'변의 길이 (정사각형은 네 변이 모두 같음)', fig:null,
steps:['둘 다 꼭짓점 4개, 변 4개로 같아요.','다른 점은 변의 길이 — 정사각형은 네 변이 모두 같아요.','직사각형은 마주 보는 변끼리만 같아요!']}},
{ tier:'최상위', type:'self', kind:'choice',
q:'삼각형 2개를 붙이면 꼭짓점이 4개인 모양을 만들 수 있을까요?',
fig:null,
choices:['만들 수 있다','만들 수 없다','삼각형만 된다','알 수 없다'], answer:'만들 수 있다',
hint:'삼각형 두 개를 긴 변끼리 붙여 보세요.',
sol:{ ans:'만들 수 있다 (사각형)', fig:null,
steps:['삼각형 2개를 변끼리 딱 붙이면 사각형이 돼요.','사각형의 꼭짓점은 4개 ✓','모양은 자르고 붙여서 다른 모양이 될 수 있어요!']}},
{ tier:'최상위', type:'self', kind:'choice',
q:'원, 삼각형, 사각형 중 곧은 변이 가장 많은 모양은?',
fig:null,
choices:['원','삼각형','사각형','모두 같다'], answer:'사각형',
hint:'변의 수를 세어 비교하세요.',
sol:{ ans:'사각형 (4개)', fig:null,
steps:['원 0개, 삼각형 3개, 사각형 4개.','가장 많은 것은 사각형.','이름의 숫자가 변의 수예요!']}},
{ tier:'최상위', type:'self', kind:'choice',
q:'네모난 색종이를 반으로 접어 자르면 어떤 모양 2개가 될까요? (대각선으로 자를 때)',
fig:null,
choices:['원','삼각형','사각형','오각형'], answer:'삼각형',
hint:'네모의 대각선으로 자르면?',
sol:{ ans:'삼각형 2개', fig:null,
steps:['정사각형을 대각선으로 자르면 삼각형 2개가 돼요.','반대로 삼각형 2개를 붙이면 사각형!','모양은 자르고 붙여서 변신할 수 있어요.']}},
{ tier:'최상위', type:'self', kind:'num',
q:'삼각형 3개의 꼭짓점을 모두 세면 몇 개일까요?',
fig:null,
answer:9,
hint:'삼각형 하나에 3개씩, 3개면?',
sol:{ ans:'9개', fig:null,
steps:['삼각형 1개 = 꼭짓점 3개.','3개면 3 × 3 = 9개.','곱셈으로 세면 빨라요!']}},
{ tier:'최상위', type:'self', kind:'choice',
q:'동그란 모양이 잘 굴러가는 이유는 무엇일까요?',
fig:null,
choices:['색깔이 예뻐서','뾰족한 곳이 없어서','크기가 작아서','변이 많아서'], answer:'뾰족한 곳이 없어서',
hint:'세모·네모는 왜 안 굴러갈까요?',
sol:{ ans:'뾰족한 곳이 없어서', fig:null,
steps:['원은 테두리가 둥글기만 하고 뾰족한 곳이 없어요.','그래서 어느 쪽으로도 매끄럽게 굴러가요.','세모·네모는 뾰족한 곳에 걸려서 잘 안 굴러가요!']}},
{ tier:'최상위', type:'self', kind:'num',
q:'사각형 2개를 나란히 붙이면 꼭짓점이 몇 개인 모양이 될까요? (긴 변끼리 딱 붙일 때)',
fig:null,
answer:4,
hint:'네모 2개를 옆으로 붙이면 더 긴 네모가 돼요!',
sol:{ ans:'4개 (직사각형)', fig:null,
steps:['정사각형 2개를 나란히 붙이면 길쭉한 직사각형이 돼요.','직사각형의 꼭짓점은 4개.','가운데 선은 사라지고 바깥 테두리만 남아요!']}},
];
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='