"use client"; import Link from "next/link"; import { useEffect, useRef } from "react"; import AnswerResultLine from "@/components/game/AnswerResultLine"; import type { GradeResult, ParenthesisSignProblem } from "@/lib/engine/types"; interface ScoreSummaryProps { correctCount: number; totalCount: number; problems: ParenthesisSignProblem[]; results: (GradeResult | null)[]; onRestart: () => void; } function formatLatexTermPair(first: number, second: number) { const operator = second < 0 ? "-" : "+"; return `${first} ${operator} ${Math.abs(second)}`; } export default function ScoreSummary({ correctCount, totalCount, problems, results, onRestart, }: ScoreSummaryProps) { const restartButtonRef = useRef(null); const solvedItems = problems .map((problem, index) => ({ problem, result: results[index], })) .filter( (item): item is { problem: ParenthesisSignProblem; result: GradeResult } => item.result !== null, ); useEffect(() => { restartButtonRef.current?.focus(); }, []); return (

괄호 음수 분배

풀이 결과

{correctCount} / {totalCount} 정답

    {solvedItems.map(({ problem, result }, index) => { const userAnswerLatex = formatLatexTermPair( result.userAnswer[0], result.userAnswer[1], ); const correctAnswerLatex = formatLatexTermPair( result.correctAnswer[0], result.correctAnswer[1], ); return ( {index + 1}. } /> ); })}
처음으로
); }