From 12620483d49db263139a60547a438df491986d16 Mon Sep 17 00:00:00 2001 From: hyea Date: Mon, 10 Aug 2026 20:14:24 +0900 Subject: [PATCH] Add NYPC 2026 Qualification Round problems (Rookie & Master track) --- README.md | 2 +- public/favicon.ico | Bin 32038 -> 12015 bytes src/components/Details.tsx | 29 +++ src/components/PostLayout.tsx | 2 +- src/components/Simulators.tsx | 5 +- src/components/components.tsx | 2 + src/components/themes.tsx | 4 + src/routes/2026/index.tsx | 43 ++++ src/routes/2026/pre_1a.mdx | 116 +++++++++++ src/routes/2026/pre_1b.mdx | 182 ++++++++++++++++ src/routes/2026/pre_2a.mdx | 122 +++++++++++ src/routes/2026/pre_2b.mdx | 186 +++++++++++++++++ src/routes/2026/pre_m.mdx | 377 +++++++++++++++++++++++++++++++++ src/routes/__root.tsx | 2 +- src/routes/en/2026/index.tsx | 33 +++ src/routes/en/2026/pre_m.mdx | 379 ++++++++++++++++++++++++++++++++++ src/routes/en/index.tsx | 25 ++- src/routes/index.tsx | 4 +- 18 files changed, 1506 insertions(+), 7 deletions(-) create mode 100644 src/components/Details.tsx create mode 100644 src/routes/2026/index.tsx create mode 100644 src/routes/2026/pre_1a.mdx create mode 100644 src/routes/2026/pre_1b.mdx create mode 100644 src/routes/2026/pre_2a.mdx create mode 100644 src/routes/2026/pre_2b.mdx create mode 100644 src/routes/2026/pre_m.mdx create mode 100644 src/routes/en/2026/index.tsx create mode 100644 src/routes/en/2026/pre_m.mdx diff --git a/README.md b/README.md index fea25f6fb..721bbbf34 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # nypc.github.io -넥슨 청소년 프로그래밍 챌린지 (NYPC) 아카이브 +넥슨 영 프로그래머스 컵 (NYPC) 아카이브 [작업 가이드](GUIDE.md) diff --git a/public/favicon.ico b/public/favicon.ico index 4ed1b724d77f3770703bf01993b55c140fe76442..2ea7896dc3a81bb126314c539d6556b284f512c9 100644 GIT binary patch literal 12015 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 diff --git a/src/components/Details.tsx b/src/components/Details.tsx new file mode 100644 index 000000000..fbf978e86 --- /dev/null +++ b/src/components/Details.tsx @@ -0,0 +1,29 @@ +import styled from "@emotion/styled"; +import type { ReactNode } from "react"; + +const DetailsContainer = styled.details` + margin: 16px 0; + padding: 8px 16px; + border: ${({ theme }) => theme.styles.border()}; + border-radius: 8px; +`; + +const Summary = styled.summary` + cursor: pointer; + font-weight: bold; +`; + +export const Details = ({ + summary = "자세히 보기", + children, +}: { + summary?: string; + children?: ReactNode; +}) => { + return ( + + {summary} + {children} + + ); +}; diff --git a/src/components/PostLayout.tsx b/src/components/PostLayout.tsx index ea348ce25..53d11e0b0 100644 --- a/src/components/PostLayout.tsx +++ b/src/components/PostLayout.tsx @@ -65,7 +65,7 @@ export const PostLayout: React.FC = (props) => { ? `${meta.title}${ meta.codebattle ? " — NYPC CODE BATTLE" : meta.year ? ` — NYPC ${meta.year}` : "" }` - : "NYPC — Nexon Youth Programming Challenge"; + : "NYPC — NEXON Young Programmers Cup"; return ( <> diff --git a/src/components/Simulators.tsx b/src/components/Simulators.tsx index eb231227d..123bdcb24 100644 --- a/src/components/Simulators.tsx +++ b/src/components/Simulators.tsx @@ -11,10 +11,11 @@ const SimulatorButtonsGrid = styled.div` interface Props { urlPrefix: string; count: number; + param?: string; } export const Simulators = (props: Props) => { - const { urlPrefix, count } = props; + const { urlPrefix, count, param = "subtask" } = props; return ( @@ -23,7 +24,7 @@ export const Simulators = (props: Props) => { .map((_, index) => (