Skip to content

Latest commit

 

History

History
167 lines (124 loc) · 11.2 KB

README.md

File metadata and controls

167 lines (124 loc) · 11.2 KB

디스크립션

요약

  • 디스크립션은 명료해야 합니다.
    • 문장을 짧고 간결하게 작성하는 것을 권장합니다.
  • 디스크립션은 맞춤법을 지켜야 합니다.
  • 디스크립션은 문제를 푸는 사람이 이해할 수 있는 언어로 작성되어야 합니다(표현, 수학 기호 등).
  • 디스크립션은 잘 포매팅되어 있어야 합니다.
  • 대회 내의 문제들 간에 디스크립션이 일관되어야 합니다.

이하 모든 내용은 디스크립션을 수정할 때마다 점검해야 합니다.

목차

가독성과 명료성

디스크립션은 명료해야 합니다.

  • (짧고 간결) (UCPC 가이드라인) 디스크립션의 모든 문장을 짧고 간결하게 작성하는 것을 권장합니다.
  • (난해하지 않게) 참가자의 독해를 일부러 어렵게 하려는 장치는 없어야 합니다.
    • 문제의 상황 설명을 위한 스토리 등은 '독해를 일부러 어렵게 하는 장치'로 보지 않습니다. 다만, 이 경우에도 문제의 상황 설명은 독해하기 어렵지 않아야 합니다.
    • 디스크립션은 엄밀한 정의를 제공하기보다 이해하기 쉬운 정의를 제공하는 것을 목표해야 합니다.
  • (문단) 문단은 적절한 수의 문장으로 구성되어야 합니다.
    • 연관성이 높은 문장들을 하나의 문단으로 묶는 것을 권장합니다.
    • 연관성이 떨어지는 문장들은 다른 문단으로 분리하는 것을 권장합니다.
  • (일관성) 단어의 사용은 디스크립션 내에서 일관적이어야 합니다.
    • 예) 한 문제의 디스크립션 내에서 충분한 설명 없이 '길', '도로', '간선' 또는 '시간', '비용' 등을 혼용하지 않습니다.

맞춤법

(UCPC 가이드라인) 모든 디스크립션은 맞춤법을 지켜야 합니다.

  • 부산대학교 한국어 맞춤법/문법 검사기를 사용하는 것을 권장합니다. 다만, 기계 맞춤법 검사기는 올바르지 않은 개선사항을 제안할 수 있으니 개선사항을 무분별하게 수용하지 않습니다. (참고: 한국어 맞춤법/문법 검사기)
  • 극히 예외적인 상황에서 일부러 맞춤법을 어기려는 컨셉의 문제에서는 그렇게 하지 않아도 됩니다. 또한, 맞춤법을 지키지 않는 표현이 맞춤법을 지키는 표현보다 매우 널리 사용되는 경우에도 맞춤법을 지키지 않아도 됩니다.

또한 수식은 같은 의미의 문장으로 취급해야 합니다.

  • 문장이 수식으로 끝나는 경우 수식에도 마침표를 붙여야 합니다.
    • 예)
      • $f_1=1$.
      • $f_2=2$.
      • $n\ge 3$일 때, $f_n=f_{n-1}+f_{n-2}$.

특히, 자주 틀리는 사례들에 대해 주의해야 합니다.

올바른 표현 잘못된 표현 올바른 표현 잘못된 표현
수* 숫자* 개수 갯수
최댓값, 최솟값 최대값, 최소값 소숫점 소수점
자릿수** 자리수** 꼭짓점 꼭지점
첫 번째 첫번째 첫째 첫 째
한 개 한개 ~한다(설명). ~한다. (설명)
"word." "word". "word," "word",
A, B, and C A, B, C
  • * '숫자'는 수를 글자로서 취급할 때에만 사용합니다. 수를 값으로서 취급할 때에는 '수'를 사용합니다.
  • ** 맥락에 따라 '자리 수'도 올바른 표현일 수 있습니다 - '$4$자리 수' 등.

언어의 사회성

디스크립션은 문제를 푸는 사람이 이해할 수 있는 언어로 작성되어야 합니다.

  • (은어) 알고리즘 문제해결 커뮤니티 외, 특정 집단에서만 이해할 수 있는 표현 등은 충분한 설명 없이는 사용하지 않습니다.
  • (수학 기호) 수학 기호의 사용은 해당 문제와 비슷한 난이도의 문제를 주로 해결하는 사람들을 고려해야 합니다.
    • 수학 기호로 표현하는 것이 일반적인 문제해결자들의 입장에서 가독성을 해치지 않으면서, 표현하고자 하는 바를 더 간단하고 명료하게 표현할 수 있는 것이 아닌 이상, 수학 기호를 사용하지 않는 것을 권장합니다.
    • 특히, Gold 이하로 기획한 문제들에서는 수학 기호를 최대한 피하고, 피할 수 없는 경우에는 충분한 설명을 제공하는 것을 권장합니다.
  • (사회적 합의 실패) 사회적인 합의에 이르지 못한 단어는 사용하지 않습니다.
    • 예) '자연수'의 정의는 분야에 따라 다르므로, 경우에 따라 '양의 정수', 혹은 '음이 아닌 정수' 등을 사용합니다.
  • (유해한 내용) (BOJ 가이드라인) 차별, 혐오, 또는 그를 함의하는 내용 등이 담긴 디스크립션은 작성하지 말아야 합니다.
    • 지식과 독해력 이외의 요소에 의해 문제해결 경험에 차이를 만드는 것은 불합리합니다.

문장과 문체

  • (괄호) (BOJ 가이드라인) 디스크립션에서 괄호는 사용하지 않을 수 있는 한 사용하지 않습니다.
  • (번역체) (BOJ 가이드라인) 번역체는 사용하지 않는 것이 좋습니다.
    • 예) 입력으로 주어지는 데이터는 문제의 조건을 만족하고 있음이 보장된다. → 입력으로 주어지는 데이터는 문제의 조건을 만족한다.

기호

  • (제한의 등장 위치) 입력부에서 사용하는 기호의 제한은 디스크립션이 아니라 입력부에서 제공하는 것을 권장합니다.
    • 예) GA1 E

      (문제) 크기 $N$인 집합 $A = {A_1, A_2, \cdots, A_N}$와 정수 $K$가 주어집니다.

      (입력) 첫 줄에 정수의 개수 $N$과 문제의 정수 $K$가 공백으로 구분되어 주어집니다. $(2 \le N, K \le 100,000)$

  • (재언급) 디스크립션에서 기호를 정의했더라도, 입력부에서 그 정의를 다시 언급해 주는 것을 권장합니다.
    • (비권장하는 예)

      (입력) 이후 $T$ 개의 줄에 각각 문제에서 언급한 정수 $N$이 한 줄에 하나씩 주어진다.

  • (리터럴) 배열의 경우 대괄호([])로, 집합 등의 경우 중괄호({})로, 튜플 및 벡터 등의 경우 소괄호(())로 감싸 나타냅니다.
    • 예) 배열 $[3, 1, 4, 1]$에 대한 답은 $5$다.

입출력 형식

  • (명확한 입출력 형식 정의) (UCPC 가이드라인) 입출력 형식은 명확하게 정의되어야 합니다. 아래 목록의 사항들을 지문에 나타낼 수 있으면 나타내야 합니다.
    • 기호들이 공백으로 구분되어 표현됨
    • 기호가 정수로 표현됨
    • 기호가 소수점 아래 최대 $N$자리까지의 실수로 표현됨
  • (이해하기 쉬운 입력 형식) 입력 형식을 설명한 글은 최대한 실제 입력 순서와 일치하는 순서로 입력을 설명해야 합니다.
    • 입력 파일에서 한 줄에 들어오는 기호들은 입력 형식 설명에서 한 문단 내에 표현하여야 합니다.
    • 입력 파일의 여러 줄에 대한 설명을 입력 형식 성명에서 한 문단으로 하지 않아야 합니다.
    • 입력 파일에서 기호들이 들어오는 순서대로 입력 형식 설명에서 해당 기호들을 언급하여야 합니다.
      • 안 좋은 예) 입력은 $N$, $M$, $K$ 순서대로 들어오지만, 입력 설명에서 $K$에 대하여 먼저 설명하는 경우 등

마크업

모든 문제의 마크업은 인라인 LaTeX를 사용합니다.

  • (Well-formed) (BOJ 가이드라인) 문제 디스크립션은 BOJ의 '문제 안내'를 따릅니다. (참고: BOJ Help: 문제 안내)

  • (수식) (UCPC 가이드라인) 모든 변수와 기수 등은 math mode로 작성해야 합니다. 서수는 text mode로 작성해도 됩니다. Math mode 수식 작성 방법은 UCPC 가이드라인을 따릅니다.

  • (강조) 디스크립션에서 처음으로 등장하는 개념 등을 적당히 강조합니다. 다만, 해당 디스크립션에서 해당 단어가 등장하는 첫 위치에만 강조하는 것을 권장합니다.

    • 예) (GA1 E)

      $A$의 부분집합 $S$좋은 집합이라는 것은 다음 조건을 모두 만족시킴을 의미합니다.

      A subset $S$ of $A$ is called a good set if it satisfies all of the following conditions.

  • (리터럴) (UCPC 가이드라인) 입력 설명에서, 정확히 어떤 문자열을 입력 또는 출력해야 하는 경우에는 붉은 고정폭 글씨로 강조합니다.

    • 강조를 위한 색상은 #e74c3c를 사용합니다. 이 색상은 BOJ Stack에서 '창백한 빨강'입니다. BOJ Stack 색상 선택기
    • 예) (GA1 F)

      흰색 팀이 이긴다면 “WHITE”, 검은색 팀이 이긴다면 “BLACK”을 출력하세요.

일관성

대회 내의 문제들 간에 디스크립션이 일관되어야 합니다.

  • (문체) 대회 내의 모든 문제들은 같은 문체로 작성되어야 합니다.
  • (표현) 대회 내에서 처음 등장한 표현 등은 서로 다른 문제에서 다른 의미로 정의하는 것을 피하는 것을 권장합니다.
  • (배경 설정 등) 대회 내에서 등장한 등장인물과 배경 등의 설정은 서로 다른 문제에서 다르게 소개하는 것을 피하는 것을 권장합니다.
일관성이 떨어지는 예시
  • 어떤 문제는 존댓말을, 어떤 문제는 반말을 사용함.
  • '좋은 집합'의 정의가 문제에 따라 다름.
그랜드 아레나 문체 예시

합의할 문체를 찾지 못했다면 그랜드 아레나의 문체를 사용하는 것도 괜찮습니다.

  • 경어를 사용합니다. 모든 문장은 존댓말로 작성합니다.
  • (문제) '(답을) 구하세요.' / '(답을) 출력합니다.' / '(답이) 무엇일까요?' / '(조건을 만족하도록) 할 수 있나요?'
  • (입력) '(입력 또는 변수가) 주어집니다.'
  • (출력) '(답 또는 값을) 출력하세요.'
  • (예제 설명) '(예제를) 출력합니다.'

자주 사용되는 표현

필요한 경우 자주 사용되는 표현 문서에서 표현을 복사하여 사용해도 괜찮습니다. (TODO)