문제 만들기 가이드
만드는 순서
Studio의 새 문제에서 다섯 단계를 채우고 검토를 요청합니다. 관리자가 승인하면 문제 목록에 공개됩니다.
- 문제: 제목과 설명
- 제한: 시간·메모리·출력 제한
- 예제: 풀이자에게 보여 줄 입력과 출력
- 채점: 채점 방식과 공개하지 않는 채점 테스트
- 정보: 출처, 본문 언어, 난이도, 태그
문제 구성
| 항목 | 규칙 |
|---|---|
| 제목 | 200자 이하 |
| 설명 | Markdown. 조건, ### 입력, ### 출력 순서로 씁니다. 수식은 $...$, $$...$$ |
| 예제 | 1–10개. 풀이자에게 공개됩니다. |
| 채점 테스트 | 1–20개. 공개하지 않습니다. |
제한
시간 제한은 의도한 풀이는 통과하고 느린 풀이는 넘기는 값으로 정합니다.
| 항목 | 범위 | 기본값 |
|---|---|---|
| CPU 시간 | 1 ms–10,000 ms | 1,000 ms |
| 실행 시간 | CPU 시간 이상, 30,000 ms 이하 | 3,000 ms |
| 메모리 | 1,024 KB–524,288 KB | 131,072 KB |
| 출력 | 8,192 KB 이하 | 64 KB |
채점 방식
- 공백 기준 비교 (
tokens): 공백과 줄바꿈 차이를 무시하고 단어를 비교합니다. - 완전히 일치 (
exact): 공백과 줄바꿈까지 같아야 합니다.
답이 여러 개이거나 실수 오차를 허용하는 문제는 만들 수 없습니다.
좋은 채점 테스트
최대공약수 문제라면 다음을 넣습니다.
- 가장 작은 입력과 두 수가 같은 경우:
1 1,7 7 - 배수 관계와 서로소:
12 36,17 5 - 큰 수가 뒤에 오는 경우:
18 12 - 제약의 최댓값: 약수를 하나씩 확인하는 풀이가 시간 제한을 넘는 값
예상 출력은 정답 코드로 계산합니다.
출처와 저작권
직접 만든 문제는 출처를 자체 제작으로 둡니다. 저작권은 출제자에게 남고, 약관에 따라 서비스 이용을 허락합니다. 다른 사이트의 문제를 옮기지 않으며, 외부 자료를 바탕으로 한 문제는 원출처와 이용 조건을 고릅니다.
JSON으로 가져오기
Studio 새 문제의 가져오기에 JSON을 붙여 넣거나 .json 파일을 올립니다. Studio 어디에 파일을 끌어다 놓아도 새 문제로 가져옵니다.
| 필드 | 규칙 |
|---|---|
format | "codykata.problem-draft" |
version | 1 |
language | "ko" 또는 "en". 생략하면 현재 값을 유지합니다. |
tags | 태그 이름 최대 10개. 없는 태그는 후보 태그가 됩니다. |
problem.schema_version | 2 |
problem.title | 200자 이하 |
problem.content | [{ "id": "statement", "type": "text", "text": "…" }] |
problem.samples | 최대 10개 { "input", "output" } |
problem.limits | cpu_time_ms, wall_time_ms(ms), memory_bytes, output_bytes(바이트) |
problem.checker | { "type": "tokens", "version": 1 } 또는 "exact" |
problem.tests | 최대 20개 { "id", "input", "answer" } |
- 입력과 출력은 줄 끝마다
\n을 붙입니다. - content
id는 영문 소문자로 시작하고a-z0-9-만 씁니다. testid는A-Za-z0-9_-를 씁니다. - 출처·난이도·이미지는 가져오지 않습니다.
예시
json
AI 도구와 함께 만들기
웹 페이지를 읽을 수 있는 AI 도구에 다음 문장을 보내면 위 형식의 JSON과 정답 코드를 받을 수 있습니다.
text
https://codykata.com/authoring.md 를 읽고, 그 형식에 맞춰 유클리드 호제법 문제를 하나 만들어 줘.가져오기 전에 정답 코드로 예상 출력을 확인합니다.