✍️ 연플래닝 오리지널 — 「아하! 보이는 직관수학」 자체 제작. 모든 문제·정답 손검산 완료. 답안을 제출해야 해설·정답이 열립니다(먼저 스스로 풀어 보세요).
💬 더 필요한 게 있나요?
난이도 조절(더 쉽게 / 더 어렵게) · 다른 유형 · 특정 개념 집중 · 문항 수 등 무엇이든 적어 주세요. 선생님이 확인합니다. (공개 아님)
✏️ 손으로 풀어보세요
`; return s;
}
const P=[
{ tier:'기초', type:'self', kind:'num',
q:'전체를 똑같이 10칸으로 나눈 것 중 1칸을 소수로 쓰면? (소수점 아래만 숫자로)',
fig:fbar({bars:[{parts:10,shade:1,label:'1/10',color:'#C0503D',unitMark:true}],note:'10칸 중 1칸'}),
answer:1,
hint:'10칸 중 1칸 = 0.1 이에요. 1칸이면?',
sol:{ ans:'0.1', fig:null,
steps:['10칸 중 1칸 = 0.1.','1칸이면 0.1 이 1개 = 0.1.','분수로는 1/10 이에요.']}},
{ tier:'기초', type:'self', kind:'num',
q:'전체를 똑같이 10칸으로 나눈 것 중 2칸을 소수로 쓰면? (소수점 아래만 숫자로)',
fig:fbar({bars:[{parts:10,shade:2,label:'2/10',color:'#C0503D',unitMark:true}],note:'10칸 중 2칸'}),
answer:2,
hint:'10칸 중 1칸 = 0.1 이에요. 2칸이면?',
sol:{ ans:'0.2', fig:null,
steps:['10칸 중 1칸 = 0.1.','2칸이면 0.1 이 2개 = 0.2.','분수로는 2/10 이에요.']}},
{ tier:'기초', type:'self', kind:'num',
q:'전체를 똑같이 10칸으로 나눈 것 중 3칸을 소수로 쓰면? (소수점 아래만 숫자로)',
fig:fbar({bars:[{parts:10,shade:3,label:'3/10',color:'#C0503D',unitMark:true}],note:'10칸 중 3칸'}),
answer:3,
hint:'10칸 중 1칸 = 0.1 이에요. 3칸이면?',
sol:{ ans:'0.3', fig:null,
steps:['10칸 중 1칸 = 0.1.','3칸이면 0.1 이 3개 = 0.3.','분수로는 3/10 이에요.']}},
{ tier:'기초', type:'self', kind:'num',
q:'전체를 똑같이 10칸으로 나눈 것 중 4칸을 소수로 쓰면? (소수점 아래만 숫자로)',
fig:fbar({bars:[{parts:10,shade:4,label:'4/10',color:'#C0503D',unitMark:true}],note:'10칸 중 4칸'}),
answer:4,
hint:'10칸 중 1칸 = 0.1 이에요. 4칸이면?',
sol:{ ans:'0.4', fig:null,
steps:['10칸 중 1칸 = 0.1.','4칸이면 0.1 이 4개 = 0.4.','분수로는 4/10 이에요.']}},
{ tier:'기초', type:'self', kind:'num',
q:'전체를 똑같이 10칸으로 나눈 것 중 5칸을 소수로 쓰면? (소수점 아래만 숫자로)',
fig:fbar({bars:[{parts:10,shade:5,label:'5/10',color:'#C0503D',unitMark:true}],note:'10칸 중 5칸'}),
answer:5,
hint:'10칸 중 1칸 = 0.1 이에요. 5칸이면?',
sol:{ ans:'0.5', fig:null,
steps:['10칸 중 1칸 = 0.1.','5칸이면 0.1 이 5개 = 0.5.','분수로는 5/10 이에요.']}},
{ tier:'기초', type:'self', kind:'num',
q:'전체를 똑같이 10칸으로 나눈 것 중 6칸을 소수로 쓰면? (소수점 아래만 숫자로)',
fig:fbar({bars:[{parts:10,shade:6,label:'6/10',color:'#C0503D',unitMark:true}],note:'10칸 중 6칸'}),
answer:6,
hint:'10칸 중 1칸 = 0.1 이에요. 6칸이면?',
sol:{ ans:'0.6', fig:null,
steps:['10칸 중 1칸 = 0.1.','6칸이면 0.1 이 6개 = 0.6.','분수로는 6/10 이에요.']}},
{ tier:'기초', type:'self', kind:'num',
q:'전체를 똑같이 10칸으로 나눈 것 중 7칸을 소수로 쓰면? (소수점 아래만 숫자로)',
fig:fbar({bars:[{parts:10,shade:7,label:'7/10',color:'#C0503D',unitMark:true}],note:'10칸 중 7칸'}),
answer:7,
hint:'10칸 중 1칸 = 0.1 이에요. 7칸이면?',
sol:{ ans:'0.7', fig:null,
steps:['10칸 중 1칸 = 0.1.','7칸이면 0.1 이 7개 = 0.7.','분수로는 7/10 이에요.']}},
{ tier:'기초', type:'self', kind:'num',
q:'전체를 똑같이 10칸으로 나눈 것 중 8칸을 소수로 쓰면? (소수점 아래만 숫자로)',
fig:fbar({bars:[{parts:10,shade:8,label:'8/10',color:'#C0503D',unitMark:true}],note:'10칸 중 8칸'}),
answer:8,
hint:'10칸 중 1칸 = 0.1 이에요. 8칸이면?',
sol:{ ans:'0.8', fig:null,
steps:['10칸 중 1칸 = 0.1.','8칸이면 0.1 이 8개 = 0.8.','분수로는 8/10 이에요.']}},
{ tier:'기초', type:'self', kind:'num',
q:'전체를 똑같이 10칸으로 나눈 것 중 9칸을 소수로 쓰면? (소수점 아래만 숫자로)',
fig:fbar({bars:[{parts:10,shade:9,label:'9/10',color:'#C0503D',unitMark:true}],note:'10칸 중 9칸'}),
answer:9,
hint:'10칸 중 1칸 = 0.1 이에요. 9칸이면?',
sol:{ ans:'0.9', fig:null,
steps:['10칸 중 1칸 = 0.1.','9칸이면 0.1 이 9개 = 0.9.','분수로는 9/10 이에요.']}},
{ tier:'기초', type:'self', kind:'num',
q:'전체를 똑같이 10칸으로 나눈 것 중 10칸을 소수로 쓰면? (소수점 아래만 숫자로)',
fig:fbar({bars:[{parts:10,shade:10,label:'10/10',color:'#C0503D',unitMark:true}],note:'10칸 중 10칸'}),
answer:10,
hint:'10칸 중 1칸 = 0.1 이에요. 10칸이면?',
sol:{ ans:'1.0 (=1)', fig:null,
steps:['10칸 중 1칸 = 0.1.','10칸이면 0.1 이 10개 = 1.','분수로는 10/10 이에요.']}},
{ tier:'중급', type:'self', kind:'num',
q:'분수 1/10 을 소수로 쓰면? (소수점 포함해서 입력, 예: 0.3)',
fig:null,
answer:0.1,
hint:'10분의 몇 = 소수 첫째 자리! 1/10 = 0.1',
sol:{ ans:'0.1', fig:null,
steps:['분모가 10인 분수는 소수 첫째 자리로 바로 써요.','1/10 = 0.1.','0.1 이 1개라는 뜻이에요!']}},
{ tier:'중급', type:'self', kind:'num',
q:'분수 3/10 을 소수로 쓰면? (소수점 포함해서 입력, 예: 0.3)',
fig:null,
answer:0.3,
hint:'10분의 몇 = 소수 첫째 자리! 3/10 = 0.3',
sol:{ ans:'0.3', fig:null,
steps:['분모가 10인 분수는 소수 첫째 자리로 바로 써요.','3/10 = 0.3.','0.1 이 3개라는 뜻이에요!']}},
{ tier:'중급', type:'self', kind:'num',
q:'분수 5/10 을 소수로 쓰면? (소수점 포함해서 입력, 예: 0.3)',
fig:null,
answer:0.5,
hint:'10분의 몇 = 소수 첫째 자리! 5/10 = 0.5',
sol:{ ans:'0.5', fig:null,
steps:['분모가 10인 분수는 소수 첫째 자리로 바로 써요.','5/10 = 0.5.','0.1 이 5개라는 뜻이에요!']}},
{ tier:'중급', type:'self', kind:'num',
q:'분수 7/10 을 소수로 쓰면? (소수점 포함해서 입력, 예: 0.3)',
fig:null,
answer:0.7,
hint:'10분의 몇 = 소수 첫째 자리! 7/10 = 0.7',
sol:{ ans:'0.7', fig:null,
steps:['분모가 10인 분수는 소수 첫째 자리로 바로 써요.','7/10 = 0.7.','0.1 이 7개라는 뜻이에요!']}},
{ tier:'중급', type:'self', kind:'num',
q:'분수 9/10 을 소수로 쓰면? (소수점 포함해서 입력, 예: 0.3)',
fig:null,
answer:0.9,
hint:'10분의 몇 = 소수 첫째 자리! 9/10 = 0.9',
sol:{ ans:'0.9', fig:null,
steps:['분모가 10인 분수는 소수 첫째 자리로 바로 써요.','9/10 = 0.9.','0.1 이 9개라는 뜻이에요!']}},
{ tier:'중급', type:'self', kind:'num',
q:'분수 2/10 을 소수로 쓰면? (소수점 포함해서 입력, 예: 0.3)',
fig:null,
answer:0.2,
hint:'10분의 몇 = 소수 첫째 자리! 2/10 = 0.2',
sol:{ ans:'0.2', fig:null,
steps:['분모가 10인 분수는 소수 첫째 자리로 바로 써요.','2/10 = 0.2.','0.1 이 2개라는 뜻이에요!']}},
{ tier:'중급', type:'self', kind:'num',
q:'분수 4/10 을 소수로 쓰면? (소수점 포함해서 입력, 예: 0.3)',
fig:null,
answer:0.4,
hint:'10분의 몇 = 소수 첫째 자리! 4/10 = 0.4',
sol:{ ans:'0.4', fig:null,
steps:['분모가 10인 분수는 소수 첫째 자리로 바로 써요.','4/10 = 0.4.','0.1 이 4개라는 뜻이에요!']}},
{ tier:'중급', type:'self', kind:'num',
q:'분수 6/10 을 소수로 쓰면? (소수점 포함해서 입력, 예: 0.3)',
fig:null,
answer:0.6,
hint:'10분의 몇 = 소수 첫째 자리! 6/10 = 0.6',
sol:{ ans:'0.6', fig:null,
steps:['분모가 10인 분수는 소수 첫째 자리로 바로 써요.','6/10 = 0.6.','0.1 이 6개라는 뜻이에요!']}},
{ tier:'중급', type:'self', kind:'num',
q:'분수 8/10 을 소수로 쓰면? (소수점 포함해서 입력, 예: 0.3)',
fig:null,
answer:0.8,
hint:'10분의 몇 = 소수 첫째 자리! 8/10 = 0.8',
sol:{ ans:'0.8', fig:null,
steps:['분모가 10인 분수는 소수 첫째 자리로 바로 써요.','8/10 = 0.8.','0.1 이 8개라는 뜻이에요!']}},
{ tier:'중급', type:'self', kind:'num',
q:'분수 10/10 을 소수로 쓰면? (소수점 포함해서 입력, 예: 0.3)',
fig:null,
answer:1.0,
hint:'10분의 몇 = 소수 첫째 자리! 10/10 = 0.10',
sol:{ ans:'1', fig:null,
steps:['분모가 10인 분수는 소수 첫째 자리로 바로 써요.','10/10 = 1.','0.1 이 10개라는 뜻이에요!']}},
{ tier:'상위', type:'self', kind:'num',
q:'물이 1 L 병의 10칸 중 3칸만큼 있습니다. 소수로 몇 L 일까요?',
fig:null,
answer:0.3,
hint:'0.1 이 몇 개인지 세어 보세요!',
sol:{ ans:'0.3L', fig:null,
steps:['0.1 은 전체를 10등분한 것 중 하나예요.','0.1 이 3개 → 0.3L.','분수로는 3/10 과 같아요!']}},
{ tier:'상위', type:'self', kind:'num',
q:'리본 1 m 를 10등분한 것 중 7칸은 몇 m 일까요?',
fig:null,
answer:0.7,
hint:'0.1 이 몇 개인지 세어 보세요!',
sol:{ ans:'0.7m', fig:null,
steps:['0.1 은 전체를 10등분한 것 중 하나예요.','0.1 이 7개 → 0.7m.','분수로는 7/10 과 같아요!']}},
{ tier:'상위', type:'self', kind:'num',
q:'색종이 1장을 10등분해 5칸을 색칠하면 소수로 얼마일까요?',
fig:null,
answer:0.5,
hint:'0.1 이 몇 개인지 세어 보세요!',
sol:{ ans:'0.5', fig:null,
steps:['0.1 은 전체를 10등분한 것 중 하나예요.','0.1 이 5개 → 0.5.','분수로는 5/10 과 같아요!']}},
{ tier:'상위', type:'self', kind:'num',
q:'주스 1 L 중 0.1 L 씩 8번 따르면 모두 몇 L 일까요?',
fig:null,
answer:0.8,
hint:'0.1 이 몇 개인지 세어 보세요!',
sol:{ ans:'0.8L', fig:null,
steps:['0.1 은 전체를 10등분한 것 중 하나예요.','0.1 이 8개 → 0.8L.','분수로는 8/10 과 같아요!']}},
{ tier:'상위', type:'self', kind:'num',
q:'끈 1 m 에서 0.1 m 짜리 4도막은 몇 m 일까요?',
fig:null,
answer:0.4,
hint:'0.1 이 몇 개인지 세어 보세요!',
sol:{ ans:'0.4m', fig:null,
steps:['0.1 은 전체를 10등분한 것 중 하나예요.','0.1 이 4개 → 0.4m.','분수로는 4/10 과 같아요!']}},
{ tier:'상위', type:'self', kind:'num',
q:'0.3 와 0.5 중 더 큰 수는?',
fig:null,
answer:0.5,
hint:'소수 첫째 자리 숫자를 비교하세요. 0.1 이 몇 개인지 세는 것과 같아요!',
sol:{ ans:'0.5', fig:null,
steps:['0.3 은 0.1 이 3개, 0.5 은 0.1 이 5개.','개수가 많은 쪽이 큰 수.','0.5 가 더 커요.']}},
{ tier:'상위', type:'self', kind:'num',
q:'0.7 와 0.2 중 더 큰 수는?',
fig:null,
answer:0.7,
hint:'소수 첫째 자리 숫자를 비교하세요. 0.1 이 몇 개인지 세는 것과 같아요!',
sol:{ ans:'0.7', fig:null,
steps:['0.7 은 0.1 이 7개, 0.2 은 0.1 이 2개.','개수가 많은 쪽이 큰 수.','0.7 가 더 커요.']}},
{ tier:'상위', type:'self', kind:'num',
q:'0.4 와 0.9 중 더 큰 수는?',
fig:null,
answer:0.9,
hint:'소수 첫째 자리 숫자를 비교하세요. 0.1 이 몇 개인지 세는 것과 같아요!',
sol:{ ans:'0.9', fig:null,
steps:['0.4 은 0.1 이 4개, 0.9 은 0.1 이 9개.','개수가 많은 쪽이 큰 수.','0.9 가 더 커요.']}},
{ tier:'상위', type:'self', kind:'num',
q:'0.6 와 0.1 중 더 큰 수는?',
fig:null,
answer:0.6,
hint:'소수 첫째 자리 숫자를 비교하세요. 0.1 이 몇 개인지 세는 것과 같아요!',
sol:{ ans:'0.6', fig:null,
steps:['0.6 은 0.1 이 6개, 0.1 은 0.1 이 1개.','개수가 많은 쪽이 큰 수.','0.6 가 더 커요.']}},
{ tier:'상위', type:'self', kind:'num',
q:'0.8 와 0.3 중 더 큰 수는?',
fig:null,
answer:0.8,
hint:'소수 첫째 자리 숫자를 비교하세요. 0.1 이 몇 개인지 세는 것과 같아요!',
sol:{ ans:'0.8', fig:null,
steps:['0.8 은 0.1 이 8개, 0.3 은 0.1 이 3개.','개수가 많은 쪽이 큰 수.','0.8 가 더 커요.']}},
{ tier:'최상위', type:'self', kind:'num',
q:'0.1 이 10개 모이면 얼마일까요?',
fig:fbar({bars:[{parts:10,shade:10,label:'10/10',color:'#C0503D',unitMark:true}],note:'10칸이 모두 채워졌어요'}),
answer:1,
hint:'10칸을 모두 채우면?',
sol:{ ans:'1', fig:null,
steps:['0.1 × 10 = 1.','10등분한 것 10칸 = 전체.','10/10 = 1 과 같아요!']}},
{ tier:'최상위', type:'self', kind:'choice',
q:'0.5 와 1/2 은 크기가 같을까요?',
fig:fbar({bars:[{parts:10,shade:5,label:'0.5',color:'#4E86C4',unitMark:false},{parts:2,shade:1,label:'1/2',color:'#C0503D',unitMark:false}],note:'색칠된 길이를 비교해 보세요'}),
choices:['0.5 가 크다','1/2 이 크다','크기가 같다','알 수 없다'], answer:'크기가 같다',
hint:'0.5 는 10칸 중 5칸, 1/2 은 절반이에요.',
sol:{ ans:'크기가 같다', fig:null,
steps:['0.5 = 5/10 = 절반.','1/2 = 절반.','크기가 같아요 — 쓰는 방법만 다를 뿐!']}},
{ tier:'최상위', type:'self', kind:'num',
q:'0.9 다음에 0.1 을 더하면 얼마일까요?',
fig:null,
answer:1,
hint:'0.1 이 9개에 하나 더하면 10개!',
sol:{ ans:'1', fig:null,
steps:['0.9 = 0.1 이 9개.','하나 더하면 10개 = 1.','10개가 모이면 윗자리(1)로 올라가요!']}},
{ tier:'최상위', type:'self', kind:'num',
q:'0.7 은 0.1 이 몇 개일까요?',
fig:null,
answer:7,
hint:'소수 첫째 자리 숫자를 보세요.',
sol:{ ans:'7개', fig:null,
steps:['0.7 의 소수 첫째 자리 숫자는 7.','0.1 이 7개예요.','분수로는 7/10!']}},
{ tier:'최상위', type:'self', kind:'num',
q:'1 에서 0.1 을 빼면 얼마일까요?',
fig:fbar({bars:[{parts:10,shade:9,label:'0.9',color:'#C0503D',unitMark:true}],note:'10칸 중 9칸'}),
answer:0.9,
hint:'1 = 0.1 이 10개, 하나 빼면?',
sol:{ ans:'0.9', fig:null,
steps:['1 = 0.1 이 10개.','하나 빼면 9개 = 0.9.','10칸 중 1칸을 지운 셈이에요!']}},
{ tier:'최상위', type:'self', kind:'num',
q:'0.1 이 15개이면 얼마일까요?',
fig:null,
answer:1.5,
hint:'10개면 1, 5개 더 있으면?',
sol:{ ans:'1.5', fig:null,
steps:['0.1 이 10개 = 1.','5개 더 = 0.5.','합치면 1.5.']}},
{ tier:'최상위', type:'self', kind:'choice',
q:'0.3 과 0.03 중 더 큰 수는?',
fig:null,
choices:['0.3','0.03','같다','알 수 없다'], answer:'0.3',
hint:'자릿수를 보세요! 0.3은 10분의 3, 0.03은 100분의 3.',
sol:{ ans:'0.3', fig:null,
steps:['0.3 = 10분의 3 (소수 첫째 자리).','0.03 = 100분의 3 (소수 둘째 자리).','0.3이 훨씬 커요 — 자리가 다르면 크기가 확 달라져요!']}},
{ tier:'최상위', type:'self', kind:'num',
q:'0.4 + 0.3 은 얼마일까요?',
fig:null,
answer:0.7,
hint:'0.1 이 4개 + 3개 = 몇 개?',
sol:{ ans:'0.7', fig:null,
steps:['0.4 = 0.1이 4개, 0.3 = 0.1이 3개.','합치면 0.1이 7개 = 0.7.','같은 자리끼리 더해요!']}},
{ tier:'최상위', type:'self', kind:'num',
q:'0.8 − 0.5 는 얼마일까요?',
fig:null,
answer:0.3,
hint:'0.1 이 8개에서 5개를 빼면?',
sol:{ ans:'0.3', fig:null,
steps:['0.1 이 8개 − 5개 = 3개.','= 0.3.','개수로 세면 쉬워요!']}},
{ tier:'최상위', type:'self', kind:'num',
q:'1 은 0.1 이 몇 개일까요?',
fig:null,
answer:10,
hint:'10등분한 것을 모두 모으면 전체!',
sol:{ ans:'10개', fig:null,
steps:['1 을 10등분하면 각 조각이 0.1.','10조각을 다 모으면 1 → 0.1 이 10개.','10/10 = 1 !']}},
];
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='