document.addEventListener('DOMContentLoaded', function() {
const correctAnswers = {
q1: 'D', q2: 'C', q3: 'A', q4: 'D', q5: 'C', q6: 'A', q7: 'B', q8: 'X',
q9: 'C', q10: 'X', q11: 'A', q12: 'C', q13: 'X', q14: 'B', q15: 'O', q16: 'X',
q17: 'C', q18: 'X', q19: 'O', q20: 'B', q21: 'X', q22: 'O',
q23: 'X', q24: 'X', q25: 'O', q26: 'D', q27: 'X', q28: 'C'
};
const explanations = {
q1: "정답 (D). 조면소포체가 아닌 활면소포체가 간세포 등에서 독성 물질을 해독하고 탄수화물 대사에 관여합니다.",
q2: "정답 (C). ㄱ, ㄴ, ㄷ 모두 옳은 설명입니다. ㄹ은 'RNA의 아데닌'이 아니라 'DNA의 아데닌'이 티민(T)과 결합하며, RNA의 아데닌(A)은 DNA의 티민(T)과 짝을 이룹니다. 하지만 문장 주체가 RNA이므로 혼동을 유발할 수 있습니다. 가장 정확한 설명은 ㄱ,ㄴ,ㄷ 입니다.",
q3: "정답 (A). 동물의 구성 단계는 '세포→조직→기관→기관계→개체'이고, 식물의 구성 단계는 '세포→조직→조직계→기관→개체'입니다. 동물은 특정 기능을 함께 수행하는 기관들의 모임인 '기관계'를, 식물은 연속적인 조직의 묶음인 '조직계'를 갖는 차이가 있습니다.",
q4: "정답 (D). 설명이 반대로 되었습니다. 체세포분열은 생장, 재생, 무성생식에 기여하고, 감수분열은 유성생식을 위한 생식세포 형성에 필수적입니다.",
q5: "정답 (C). 분열조직과 유조직은 식물 조직에 해당합니다. 동물의 4대 조직은 상피조직, 결합조직, 근육조직, 신경조직입니다.",
q6: "정답 (A). 아미노산은 중앙의 알파(α) 탄소를 중심으로 아미노기(-NH₂), 카복실기(-COOH), 수소 원자(-H), 그리고 종류마다 다른 곁사슬(R기) 1개가 결합한 공통적인 구조를 가집니다.",
q7: "정답 (B). 교감신경은 위기 상황에 대비하여 소화 기능을 억제하고, 부교감신경은 몸을 안정시키며 소화액 분비와 소화관 운동을 촉진합니다. (A) 교감-동공확대, 부교감-심장박동억제 (C) 교감-방광이완, 부교감-기관지수축 (D) 설명이 반대입니다.",
q8: "정답 (X). 펩티도글리칸은 진정세균(Bacteria)의 세포벽 주성분입니다. 고세균(Archaea)의 세포벽은 슈도펩티도글리칸 등 다른 물질로 구성되어 있습니다.",
q9: "정답 (C). 세포질은 세포 내에서 핵을 제외한 나머지 부분으로, 다양한 세포소기관과 이들이 떠 있는 액체 성분인 세포기질로 이루어집니다. (A)세포벽은 전투과성, (B)세포막은 선택적 투과성, (D)세포벽은 세포막 바깥에 위치합니다.",
q10: "정답 (X). 펩티도글리칸은 진정세균(Bacteria)의 세포벽 주성분입니다. 고세균(Archaea)은 펩티도글리칸을 갖지 않습니다.",
q11: "정답 (A). ATP(Adenosine Triphosphate)는 염기인 아데닌(Adenine)과 5탄당인 리보스(Ribose)가 결합한 아데노신(Adenosine)에, 3개의 인산기(Phosphate group)가 연결된 분자입니다.",
q12: "정답 (C). 역치 이상의 자극이 가해지면, 전압 개폐성 Na⁺ 통로가 열리면서 세포 밖에 농도가 높은 Na⁺가 세포 안으로 빠르게 확산(유입)되어 막전위가 -70mV에서 +30mV까지 급격히 상승하는 탈분극이 일어납니다.",
q13: "정답 (X). 옥시토신과 항이뇨호르몬(ADH)은 시상하부에서 생성되어 '뇌하수체 후엽'에 저장되었다가 분비됩니다. 뇌하수체 전엽에서는 성장 호르몬, 갑상선 자극 호르몬 등이 분비됩니다.",
q14: "정답 (B). 설명이 반대로 되었습니다. 광호흡은 엽록체, 퍼옥시솜, 미토콘드리아를 거치면서 오히려 ATP와 NADPH를 '소모'하는 비효율적인 과정입니다. 광합성은 빛에너지를 이용해 ATP와 NADPH를 '생성'하여 탄소고정에 사용합니다.",
q15: "정답 (O). 상온(비교적 높은 온도)에서 콜레스테롤은 인지질 분자들 사이에 끼어들어 움직임을 방해함으로써 막의 유동성이 과도하게 증가하는 것을 막아 안정성을 부여합니다. 즉, 유동성을 '감소'시킵니다. (반대로 저온에서는 인지질이 빽빽하게 굳는 것을 막아 유동성을 '증가'시킵니다.)",
q16: "정답 (X). 세균(원핵생물)의 번역 개시 과정에서는 mRNA의 특정 서열(Shine-Dalgarno 서열)에 30S 소단위체가 먼저 결합하고, 그 후에 개시 tRNA와 50S 대단위체가 결합하여 70S 번역 개시 복합체를 형성합니다.",
q17: "정답 (C). 온기를 감지하는 루피니 소체는 온도수용기(thermoreceptor)에 해당합니다. 광수용기는 망막의 간상세포와 원추세포처럼 빛을 감지하는 수용기입니다.",
q18: "정답 (X). 단백질에서 인산화(phosphorylation)는 주로 곁사슬에 수산기(-OH)를 가진 아미노산에서 일어납니다. 대표적인 예로 세린(Serine), 트레오닌(Threonine), 티로신(Tyrosine)이 있습니다. 트립토판은 인산화되지 않습니다.",
q19: "정답 (O). 상온(체온과 같은 높은 온도)에서 콜레스테롤은 인지질 분자 사이의 간격을 유지하면서도, 그들의 자유로운 움직임을 방해하여 막의 유동성이 너무 커지지 않도록 조절합니다. 즉 유동성을 감소시켜 막을 안정화시킵니다.",
q20: "정답 (B). 1분자의 아세틸 CoA가 TCA 회로를 한 바퀴 돌 때 3분자의 NADH와 1분자의 FADH₂가 생성됩니다. 따라서 2분자의 아세틸 CoA가 회로를 두 번 돌면 총 6분자의 NADH와 2분자의 FADH₂가 순생성됩니다.",
q21: "정답 (X). 세균의 단백질 합성(번역) 개시 시, mRNA에 30S 소단위체가 먼저 결합한 후, 50S 대단위체가 결합하여 완전한 70S 리보솜을 형성합니다.",
q22: "정답 (O). ANP는 혈압이 높을 때 심방에서 분비되어, 혈압을 높이는 레닌-안지오텐신-알도스테론 시스템(RAAS)을 억제합니다. 따라서 레닌의 분비를 억제하여 혈압을 낮추는 작용을 합니다.",
q23: "정답 (X). 유비퀴논(Coenzyme Q)은 복합체 I과 복합체 II에서 전자를 받아 복합체 III로 전달하는 역할을 합니다. 복합체 III과 복합체 IV 사이에서 전자를 전달하는 것은 시토크롬 c (Cytochrome c) 입니다.",
q24: "정답 (X). p53 유전자는 대표적인 종양 억제 유전자(tumor suppressor gene)입니다. DNA 손상을 감지하여 세포 주기를 정지시키거나 세포자살(apoptosis)을 유도함으로써 암세포의 증식을 억제하는 역할을 합니다.",
q25: "정답 (O). 인슐린은 혈당이 높을 때 췌장 베타세포에서 분비되어, 근육세포나 지방세포의 세포막에 포도당 수송체인 GLUT4의 발현을 증가시킵니다. 이로 인해 세포의 포도당 흡수가 촉진되어 혈당이 낮아집니다.",
q26: "정답 (D). 광호흡은 ATP를 순생성하지 않고 오히려 소모하는 과정으로, 식물의 생장에 비효율적입니다. 반면 세포호흡은 유기물을 분해하여 다량의 ATP를 합성하는 핵심적인 에너지 공급 과정입니다.",
q27: "정답 (X). 황체(corpus luteum)에서 주로 분비되는 호르몬은 프로게스테론이며, 이 프로게스테론이 에스트로겐과 함께 자궁내막을 두껍게 유지하여 착상에 적합한 환경을 만듭니다. 배란 전 여포에서 분비되는 에스트로겐이 자궁내막을 증식시키는 역할을 시작합니다.",
q28: "정답 (C). 펩타이드 결합은 아미노산들이 연결되어 폴리펩타이드 사슬(1차 구조)을 형성하는 기본 결합입니다. 3차 구조는 이렇게 형성된 폴리펩타이드 사슬이 접히면서 곁사슬(R기) 간의 다양한 상호작용(수소결합, 이온결합, 소수성 상호작용, 이황화 결합 등)에 의해 형성됩니다."
};
const form = document.getElementById('biology-test-form');
form.addEventListener('submit', function(event) {
event.preventDefault();
// 각 레벨별 정답 수를 계산하기 위한 변수
let levelCorrect = { 1: 0, 2: 0, 3: 0, 4: 0 };
const levelQuestionCounts = { 1: 8, 2: 8, 3: 6, 4: 6 };
let totalCorrect = 0;
const totalQuestions = Object.keys(correctAnswers).length;
// 레벨별 정답 수 계산
for (let i = 1; i <= 8; i++) { if (document.querySelector(`input[name="q${i}"]:checked`)?.value === correctAnswers['q'+i]) levelCorrect[1]++; }
for (let i = 9; i <= 16; i++) { if (document.querySelector(`input[name="q${i}"]:checked`)?.value === correctAnswers['q'+i]) levelCorrect[2]++; }
for (let i = 17; i <= 22; i++) { if (document.querySelector(`input[name="q${i}"]:checked`)?.value === correctAnswers['q'+i]) levelCorrect[3]++; }
for (let i = 23; i 0 ? finalScore / (duration / 20) : 0;
if (finalScore > 0) {
const interval = setInterval(() => {
currentScore += increment;
if (currentScore >= finalScore) {
currentScore = finalScore;
clearInterval(interval);
}
scoreTextElement.textContent = `${Math.round(currentScore)}점`;
}, 20);
} else {
scoreTextElement.textContent = `0점`;
}
// 결과 분석 로직
let recommendationHTML = '';
const resultAnalysis = document.getElementById('result-analysis');
// 레벨별 정답률 계산
const level1Pass = (levelCorrect[1] / levelQuestionCounts[1]) >= 0.5;
const level2Pass = (levelCorrect[2] / levelQuestionCounts[2]) >= 0.5;
const level3Pass = (levelCorrect[3] / levelQuestionCounts[3]) >= 0.5;
const level4Pass = (levelCorrect[4] / levelQuestionCounts[4]) >= 0.5;
if (!level1Pass) {
resultAnalysis.className = 'result-box result-level-1';
recommendationHTML = `
LV.1 : 기초 다지기 단계
아직 베이스가 많이 부족한 것으로 보입니다. 고교 과정에 해당되는 내용부터 차근차근 공부해야 합니다. 수강 커리 중 생물, 화학 ‘통합이론’ 강의부터 수강하고 질의응답을 적극 활용하는 것을 추천드립니다.