RULES

치열한 전략 대결을 위한 기본 규칙 공정한 경쟁은 명확한 기준에서 시작됩니다.

ROOKIE TRACKMASTER TRACK

대회 규칙

개발 도구 사용 안내

진행 안내

NYPC 2026은 예선 라운드(Qualification Round, QR)와 본선 라운드(Final Round, FR)로 구성되어 진행됩니다.

Rookie 부문에서는 휴리스틱 유형의 문제가 라운드마다 한 문제 출제됩니다.

연습 문제와 예선 라운드의 경우, 하나의 문제가 두 영역으로 구성되어 있습니다.

  • 스텝 업: 단계별 난이도로 구성된 여러 입력이 참가자에게 직접 주어집니다. 참가자는 이를 해결하여 주어진 입력에 해당하는 출력을 제출합니다.
  • 챌린지: 참가자는 문제의 입력을 받아 올바른 출력을 하는 코드를 제출합니다.

본선 라운드에 출제되는 문제의 경우 챌린지 영역 하나로만 구성되어 있습니다.

예선 라운드

예선 라운드 시작 전에 공개되는 연습 문제를 통해 대회에서 사용하는 환경을 미리 테스트할 수 있습니다. 연습 문제의 점수는 총점에 반영되지 않으며, 예선 라운드 최종 점수에 영향을 주지 않습니다.

한 라운드 당 하나의 문제가 주어지며, 참가자는 라운드 종료 전까지 문제를 해결하고 코드 또는 답안을 제출해야 합니다.

대회가 종료되고 참가자는 제출 기한 안에 본인의 문제 풀이 과정을 담은 리플레이를 제출해야 합니다.

본선 라운드

예선 라운드에서 우수한 성적을 거둔 상위 80명 내외의 참가자는 8월 29일에 서울에서 열리는 본선 라운드에 참가할 수 있습니다.

자세한 일정은 추후 공지됩니다.

  • 정해진 입장 마감 시각 이후에는 입장할 수 없습니다.

문제 풀이 및 평가

문제의 점수는 각 영역의 점수를 일정 비율로 합한 값입니다.

스텝 업 영역과 챌린지 영역 모두 10000001\,000\,000점의 만점을 가지며, 최종 점수에 특정 비율로 반영됩니다. 비율은 문제에 명시되어 있습니다.

예를 들어 스텝 업 영역이 2020%, 챌린지 영역이 8080%의 비중을 차지한다면 스텝 업 영역에서 xx점, 챌린지 영역에서 yy점을 획득한 참가자의 점수는 0.2x+0.8y0.2x + 0.8y가 됩니다. 따라서 문제의 총 만점도 10000001\,000\,000점입니다.

스텝 업

참가자는 문제 페이지에서 주어지는 입력(테스트 케이스)의 목록을 확인할 수 있습니다.

원하는 입력을 선택 후 직접 다운로드받거나 시뮬레이터를 통해 확인할 수 있습니다.

참가자는 입력을 시뮬레이터, 자신이 작성한 코드, 기타 도구들을 사용해서 작성한 입력에 대한 자신의 출력만을 답안으로 제출합니다.

  • 참가자가 문제를 해결해야 하는 입력은 고정되어 있으며, 대회 중간에 바뀌거나, 추가되거나, 제거되지 않습니다.
  • 참가자가 제출하는 답안은 1MiB (1048576 바이트) 이하여야 합니다.
  • 제출이 완료되면 자동 채점이 시작되며, 채점이 완료된 후 화면 오른쪽 위의 제출 내역 페이지에서 결과를 확인할 수 있습니다.
  • 답안은 여러 번 제출할 수 있으며, 입력 별 최종 점수제출된 답안 중 가장 높은 점수가 반영됩니다.
  • 스텝 업 영역의 점수는 모든 입력에 대한 점수 합으로 계산됩니다.
  • 점수는 정수형태로 계산되고 표시됩니다.

챌린지

참가자는 문제 페이지에서 챌린지 부문 문제를 확인할 수 있습니다. 또한, 문제를 해결하는 데에 도움을 주기 위한 예제 코드가 주어집니다.

참가자는 조건에 따라 입력을 받아 출력하는 코드와, 코드 실행 중 파일 입출력으로 읽어 사용할 수 있는 바이너리 파일 하나(선택)를 제출할 수 있습니다.

  • 코드는 1MiB (1048576 바이트) 이하, 바이너리 파일은 10MiB (10485760 바이트) 이하여야 합니다.
  • 코드를 컴파일한 결과로 나온 바이너리(인터프리터를 사용하는 언어의 경우, 코드 파일)와 직접 업로드한 바이너리 파일은 실행 시 같은 디렉토리에 위치합니다.

각 테스트케이스의 채점 결과는 "비용"으로 표현됩니다. 낮은 비용이 더 좋은 점수입니다.

사전 평가

참가자가 코드와 바이너리를 제출하는 즉시, 샘플 입력에 대해 참가자의 코드가 어떤 답안을 출력했는지와 그 성적을 확인할 수 있습니다.

사전 평가는 참가자가 제출한 답안이 서버에서 동작하는지 여부를 확인하기 위한 것이며, 최종 평가에 반영되지 않습니다.

  • 사전 평가에 사용되는 샘플 입력은 고정되어 있으며, 참가자한테 공개됩니다.
  • 참가자는 각 샘플 입력에 대해 코드가 낸 출력과 그 비용을 확인할 수 있습니다.

중간 평가

사전 평가에서 특정 비용 이하를 사용한 제출 중 한 개를 대표 답안으로 선택할 수 있습니다.

주기적으로 각 참가자가 선택한 대표 답안들을 이용해 중간 평가를 진행합니다.

  • 선택한 대표 답안이 없다면, 사전 평가에서 특정 점수 이상을 획득한 제출 중 가장 마지막 제출이 대표 답안으로 선택됩니다.
  • 대표 답안은 대회 중 자유롭게 변경할 수 있으며, 대회 종료 후 1시간까지 변경할 수 있습니다.

주최 측은 임의의 입력들을 무작위로 골라, 중간 평가용 입력으로 삼습니다.

  • 중간 평가용 입력의 개수는 모든 중간 평가에서 같습니다.
  • 중간 평가용 입력은 각 중간 평가마다 다를 수 있습니다.
  • 중간 평가용 입력을 생성하는 기준은 문제에 명시됩니다.

주최 측은 중간 평가용 입력을 사용하여 모든 대표 답안을 평가합니다.

  • 참가자는 다음과 같은 정보를 확인할 수 있습니다.
    • 각 입력이 무엇인지 다운로드받거나, 시뮬레이터를 통해 확인할 수 있습니다.
    • 각 입력에 대해, 본인의 코드가 낸 출력과, 출력이 받은 성적을 확인할 수 있습니다. 이 성적을 기준으로 각 입력에 대한 등수가 매겨집니다.
    • 각 입력에 대해, 본인의 등수와 이를 바탕으로 계산된 점수를 확인할 수 있습니다. 따라서 참가자는 본인의 중간 평가 점수를 확인할 수 있습니다.
    • 자세한 점수 계산 공식은 아래에서 확인할 수 있습니다.
  • 참가자는 다음과 같은 정보를 확인할 수 없습니다.
    • 각 입력에 대해, 다른 참가자의 입력별 성적이나 등수를 확인할 수 없습니다.
    • 본인의 중간 평가 점수가 전체 참가자 중 몇 위를 차지했는지 확인할 수 없습니다. 따라서 참가자는 본인의 중간 평가 등수를 확인할 수 없습니다.

중간 평가는 참가자들이 본인의 성적을 대략적으로 파악할 수 있게 하는 것이 목표입니다. 따라서, 중간 평가의 결과는 최종 평가에 반영되지 않습니다.

최종 평가

주최 측은 임의의 입력들을 무작위로 골라, 최종 평가용 입력으로 삼습니다.

  • 최종 평가용 입력의 개수는 중간 평가용 입력의 개수보다 많을 수 있습니다.
  • 최종 평가용 입력을 추출하는 기준은 문제에 명시됩니다.

주최 측은 최종 평가용 입력을 사용하여 모든 대표 답안을 평가하며, 이것이 챌린지 영역에서 참가자가 획득한 최종 성적이 됩니다.

  • 자세한 점수 계산 공식은 아래에서 확인할 수 있습니다.

점수 계산 및 퍼포먼스

표시되는 평가의 점수는 해당 평가에 사용한 입력에서 참가자의 대표 답안이 받은 상대 점수의 평균과 같습니다. 상대 점수의 자세한 계산 공식은 아래를 참고하세요.

상대 점수로 참가자 중 본인의 위치를 대략적으로 확인하기 어려운 참가자들은 예상 퍼포먼스을 통해 가늠해볼 수 있습니다. 퍼포먼스은 상대 점수를 보기 쉽도록 ELO와 비슷한 규칙을 적용하여 나타낸 것입니다. 퍼포먼스 자체는 평가에 아무런 영향도 주지 않습니다.

중간 및 최종 평가 상대 점수

각 입력의 점수는 참가자의 출력이 다른 참가자들에 비해 얼마나 우수한지에 따라 결정됩니다.

구체적인 계산 방법은 다음과 같습니다.

Score=106(10.5nlose+0.5ndrawntot)\textrm{Score} = \left\lfloor 10^6 \cdot \left(1 - 0.5 \sqrt{\frac{n_\textrm{lose} + 0.5n_\textrm{draw}}{n_\textrm{tot}}}\right) \right\rfloor

이때 nlosen_\textrm{lose} 는 참가자의 대표 답안보다 좋은 성적을 받은 대표 답안의 수이며 ndrawn_\textrm{draw} 는 참가자의 대표 답안과 같은 성적을 받은 다른 참가자의 대표 답안의 수입니다. ntotn_\textrm{tot}은 평가에 참여한 참가자의 총 인원수입니다.

중간 평가 표시 퍼포먼스

중간 평가의 퍼포먼스 해당 평가에서 사용한 테스트 케이스에 대한 상대 점수의 평균을 통해 계산합니다. 퍼포먼스가 높을 수록 더 좋은 성적을 받은 것입니다.

구체적인 퍼포먼스 PP의 계산 방법은 다음과 같습니다.

rankavg=(2(1Scorerel))2×ntot+1z=2×erf1(1(rankavg0.5)ntot)p=1500+400×(2×z)P={0if perrors on calculation300×exp((p300)/400)if p<300pif 300p27002700+400log(1+(p2700)/400)if p>2700\begin{aligned} \textrm{rank}_\textrm{avg} &= (2(1-\textrm{Score}_\textrm{rel}))^2 \times n_\textrm{tot} + 1 \\ z &= \sqrt{2} \times \textrm{erf}^{-1}\left(1 - \frac{(\textrm{rank}_\textrm{avg} - 0.5)}{n_\textrm{tot}}\right) \\ p' &= 1500 + 400 \times (\sqrt{2} \times z) \\ P &= \begin{cases} 0 & \text{if } p' \textrm{errors on calculation} \\ 300 \times \exp((p'-300)/400) & \text{if } p' < 300 \\ p' & \text{if } 300 \le p' \le 2700 \\ 2700 + 400\log ( 1 + (p'-2700)/400) & \text{if } p' > 2700 \end{cases} \end{aligned} \\

라운드 별 규칙

연습 문제

  • 5분에 2번 코드를 제출할 수 있습니다.
    • 5분 이내에 2번 이상 코드를 제출했다면, 추가 제출은 두 번째(마지막) 제출이 아닌, 첫 번째(마지막 전) 제출 시점에서 5분이 경과한 이후에 가능합니다.
    • 제출 간격 및 횟수는 주최측의 사정에 따라 변경될 수 있습니다.
  • 예선 라운드 시작 전 매일 오후 6시 (KST)에 각 참가자가 제출한 코드 중 대표 답안으로 선택한 코드를 기준으로 중간 평가를 진행합니다.
  • 연습 문제는 최종 평가를 진행하지 않으며, 최종 성적에도 반영되지 않습니다.

예선 라운드

  • 5분에 2번 코드를 제출할 수 있습니다.
    • 5분 이내에 2번 이상 코드를 제출했다면, 추가 제출은 두 번째(마지막) 제출이 아닌, 첫 번째(마지막 전) 제출 시점에서 5분이 경과한 이후에 가능합니다.
    • 제출 간격 및 횟수는 주최측의 사정에 따라 변경될 수 있습니다.
  • 매일 오전 10시, 오후 3시, 오후 9시 (KST)에 각 참가자가 제출한 코드 중 대표 답안으로 선택한 코드를 기준으로 중간 평가를 진행합니다.
    • 중간 평가는 참고용 결과이며, 최종 평가에는 영향을 미치지 않습니다.
  • 최종 평가 이후, 챌린지 영역에 대한 점수가 확정됩니다.
  • 참가자가 획득한 스텝 업 영역과 챌린지 영역에 대한 점수를 일정 비율로 합한 값이 최종 점수가 됩니다.

본선 라운드

  • 10초에 1번 제출이 가능합니다.
  • 대회 시작 1시간 이후부터 최소 10회 이상 정해진 시점에 각 참가자가 제출한 코드 중 대표 답안으로 선택한 코드를 기준으로 평가를 진행합니다.
  • 대회 당일, 대회장에서 각 중간 평가에 대한 정보를 확인할 수 있습니다.
  • 참가자가 최종 평가에서 획득한 점수가 그대로 최종 점수가 됩니다.

타이브레이커

  • 만약 동점자가 발생할 경우, 대표 답안의 제출 시각이 더 빠른 참가자가 더 높은 순위를 가집니다.

실행 및 채점 환경

제출된 모든 코드의 실행과 채점은 다음 환경에서 이루어집니다.

  • Amazon Web Services의 c7a.2xlarge 인스턴스
  • AMD EPYC 4세대 기반 커스텀 프로세서
  • 클럭: 3.7 GHz
  • 프로세서 아키텍처: 64 bit
  • OS: Ubuntu 24.04

이 환경에서 정상적으로 동작하지 않는 코드는 채점되지 않으니 유의하시기 바랍니다. 각 언어별로 사용되는 컴파일러와 구체적인 개발 환경에 대한 정보는 "개발 도구 사용 안내" 페이지를 참고하시기 바랍니다. 시간 및 메모리 제한 초과 여부는 참가자가 제출한 소스 코드가 실행된 프로세스에서 사용하는 자원을 기준으로 판단합니다.

  • 시간 제한은 기본적으로 프로세스가 CPU를 점유한 시간(CPU time)을 측정합니다.
  • 메모리 제한은 프로세스가 사용하는 메모리 양을 측정합니다. 이때, 사용자가 선언한 변수나 배열 외에도 언어별로 사용된 라이브러리(헤더 파일, 모듈 등)와 운영체제에서 해당 프로세스에 할당한 메모리도 포함됩니다.
  • 여러 쓰레드를 활용하여 문제를 해결하는 것도 가능합니다. 단, 프로그램에는 한 개의 CPU 코어만 할당되며, 시간 및 메모리 제한을 측정할 때 모든 쓰레드의 시간 및 메모리가 합산되어 측정됩니다.

채점 결과

스텝 업

문제 해결 화면 오른쪽 위의 "제출 내역"에서 제출을 클릭하면 어느 입력에 대한 출력을 제출했는지와 그 결과를 조회할 수 있습니다. 각 결과에 대한 세부 내용은 다음과 같습니다.

  • OK - 모든 조건을 만족하여 정답 처리된 경우입니다.
  • Partial Score - 제출한 출력이 정상적이고, 채점 결과 부분 점수를 받은 경우입니다.
  • Wrong Answer - 제출한 출력이 오답 처리된 경우입니다.
  • IE (Internal Error) - 알 수 없는 내부 오류가 발생한 경우입니다. 이 결과를 받았다면 주최 측에 문의해야 합니다.

챌린지

  • CE (Compile Error) - 제출한 소스 코드의 컴파일에 실패한 경우입니다.
  • TLE (Time Limit Exceeded) - 제출한 소스 코드의 실행 시간이 문제에 명시된 시간 제한을 초과한 경우입니다.
  • WTLE (Wall Clock Time Limit Exceeded) - 제출한 소스 코드의 실제 실행 시간이 정해진 시간 제한을 초과한 경우입니다. 이는 프로세스가 CPU를 점유한 시간이 아닌 전체 실행 시간이 초과된 경우로, 실행 중 오류가 발생했을 수 있습니다.
  • RE (Runtime Error) - 실행 중에 오류가 발생한 경우입니다. 메모리 제한을 초과하거나 프로그램의 반환값이 0이 아닌 경우에도 이 오류가 발생할 수 있습니다.
  • WA (Wrong Answer) - 프로그램이 정상적으로 종료되었으나, 출력이 올바르지 않은 경우입니다.
  • IE (Internal Error) - 알 수 없는 내부 오류가 발생한 경우입니다. 이 결과를 받았다면 주최 측에 문의해야 합니다.
  • OK - 프로그램이 정상적으로 종료되었고, 출력된 답이 점수를 획득한 경우입니다.

리플레이 (문제 풀이 과정)

참가자들은 대회 종료 이후 리플레이 제출 마감일 전까지 반드시 리플레이를 제출해야만 합니다.

리플레이는 참가자의 문제 풀이 과정을 시간 순서대로 서술한 것입니다. 분량은 1장 이상 10장 이하이며, 포맷은 자유이지만 PDF 형태로 제출하여야 합니다.

리플레이에는 다음과 같은 내용들이 포함되어야 합니다.

  • 문제를 해결한 전반적인 타임라인 (중간 평가 또는 제출을 기준으로 삼을 수 있음)
  • 제출에서 어떠한 문제점들을 발견했고, 어떠한 고민을 했으며, 어떻게 해결했는지 / 왜 해결하지 못했는지
  • (LLM을 활용했다면) 어떤 모델을 활용했고, 어떠한 방식으로 활용하였는지

다음과 같은 내용들은 필수가 아니지만, 추가로 포함하면 좋습니다.

  • 문제에 대한 접근 방향, 그리고 문제를 해결하기 위해 한 관찰 및 고민들
  • 자신이 겪었던 문제나 이를 해결하기 위한 과정을 시각적으로 보여줄 수 있는 캡처나 사진, 코드 조각 등의 자료
  • (LLM을 활용했다면) LLM의 한계점이 있었다면 무엇이고, 보완했다면 어떻게 보완했는지
  • 기타 좋았던 점, 후회되는 점, 힘들었던 점, 흥미로웠던 점이나 아무 말하고 싶은 내용들
  • 대회 시스템이나 문제에 대한 불만, 또는 개선되면 좋겠다고 생각한 점들

리플레이는 최종 평가 기준에 포함되지 않습니다.

추가 제한 사항

리플레이는 자신이 경험하고 느낀 것을 적는 글입니다. 문제를 푸는 데 LLM을 사용했더라도, 리플레이에 담는 풀이 과정과 고민은 LLM 없이 직접 작성해야 합니다.

  • 문법 교정 등이 필요한 경우에도 LLM을 사용하지 말고 맞춤법 검사기 등을 이용해야 합니다.
  • 본문의 전부 또는 일부분이 LLM을 사용해서 생성한 것으로 보이는 경우 및 본인이 문제를 해결하였음을 확인할 수 없는 경우에는, 주최 측에서 추가적인 증빙 또는 리플레이 보강을 요구할 수 있습니다.
  • 단, 리플레이 내에 본문을 보충하기 위한 용도로 본인의 프롬프트나 LLM과의 대화 내역을 삽입하는 것은 예외적으로 허용됩니다.
  • 리플레이에는 본인의 민감한 개인정보가 포함되지 않도록 각별히 유의해 주시기 바랍니다.

리플레이에 비속어, 욕설 등의 부적절한 표현이 포함되는 경우, 주최측의 판단에 따라 대회 참가가 제한되거나 수상이 취소될 수 있습니다.

문제 관련 문의

문제에 틀린 내용이 있는 경우나 알 수 없는 내부 오류 등 대회 진행에 지장이 있는 경우 문제 페이지의 질문하기 버튼을 클릭하거나, 코딩 영역에서 Ctrl + K 단축키를 눌러 문의할 수 있습니다.

  • 질문 내용에 비속어, 욕설 등 부적절한 표현이 포함되면 실격 처리될 수 있습니다.
  • 문제 풀이 방법과 관련 질문에는 답변하지 않습니다.

유효하지 않은 질문 예시

아래와 같은 질문 유형은 대표적으로 유효하지 않은 질문에 해당합니다.

"제가 작성한 프로그램이 제 컴퓨터에서는 잘 나오는데 채점하니 결과가 정상적으로 나오지 않습니다."

  • 제공된 테스트용 도구는 실제 채점 환경과는 차이가 있을 수 있습니다. 문제의 입출력 형식 등을 다시 한번 확인해주세요.

"제 컴퓨터에서는 컴파일이 잘 되는데 제출하니 컴파일 에러라고 나옵니다."

  • 참가자가 사용하는 개발 환경과 실제로 프로그램이 컴파일되고 실행되는 채점 환경은 다를 수 있습니다. "개발 도구 사용 안내" 페이지를 반드시 확인해 주세요.

답변 유형

  • 문제와 관련된 질문만 가능합니다. - 질문의 성격이 벗어난 경우에 해당합니다.
  • 지문을 다시 읽어주시기 바랍니다. - 질문한 내용이 문제에 적힌 내용으로 충분히 답이 된다고 판단된 경우입니다.
  • 답할 수 없습니다. - 영어로는 "No comment"에 해당하며, 주최 측의 답변이 어떠한 방식으로든 참가자의 문제 풀이나 대회 진행에 영향을 줄 수 있다고 판단된 경우입니다.

부정행위 안내

다음과 같은 행위는 부정행위로 간주되며, 부정행위 적발 시 불이익을 받을 수 있습니다.

  • 연습문제가 아닌 문제에 대해, 문제 및 문제와 관련된 알고리즘, 솔루션, 소스코드를 불특정 다수에게 공개하거나 유출하는 행위
  • 연습문제가 아닌 문제 관련 자료에 대해 제3자와 토론하는 행위
  • 사용 권한이 없는 코드를 제출하는 행위
    • 예시 1: 해킹 등의 방법으로 얻은 코드
    • 예시 2: 상용 프로그램의 리버싱(역분석) 등의 방법을 사용해 얻은 코드
    • 예시 3: 기타 불법적인 방법으로 얻은 코드
    • 인터넷 등에 불특정 다수에게 공개되어 있는 코드이더라도 출처를 주석 등으로 표시하지 않았다면 사용 권한이 없는 것으로 간주합니다.
  • 타인이 대회 시작 시점 이후에 작성한 코드를 제출하는 행위
  • 대리 응시 혹은 타인에게 도움을 받아 문제를 해결한 경우
  • 개인 아이디 및 패스워드를 타인에게 공유하거나 공개한 경우
  • 동일인이 여러 아이디로 중복 참가한 경우
  • 타인의 대회 참여를 방해하거나 시스템을 공격하는 행위
  • 기타 통상적으로 부정행위라고 볼 수 있는 행위

위의 항목은 예시이며, 이외에도 주최 측 판단에 따라 부정행위로 간주될 수 있습니다. 부정행위가 발생되거나 의심되는 경우, 대회 기간 중 언제든지 참가 및 수상 자격이 박탈될 수 있습니다. 대회 운영에 지장을 초래한 경우, 주최 측은 법적 조치 및 손해배상을 청구할 수 있습니다.

아래의 행위는 부정행위가 아닙니다.

  • 연습문제에 대해 문제, 문제 내용, 풀이 방법, 소스코드 등을 논의하거나 공유하는 행위
  • 외부인이 볼 수 없는 코드 저장소를 사용하는 행위
    • 단, 코드 저장소를 사용할 경우 공개 범위 설정에 각별히 유의해주시기 바랍니다.
  • LLM(ChatGPT, Copilot 등) 및 기타 코딩 보조 도구를 사용하여 코드를 생성하거나 수정하는 행위

어떤 행위가 부정행위인지 궁금하다면 자의적으로 판단하지 말고, 반드시 주최 측에게 문의하시기 바랍니다.

프로그램 사용 안내

  • NYPC는 대형 언어 모델로 대두되는 생성형 AI(이하 LLM)을 창의성과 문제 해결을 돕는 도구로 사용하는 것을 권장합니다.
  • 대회의 핵심은 사람의 창의성과 문제 해결 능력을 평가하는 것이며, (다량의 컴퓨팅 자원에 접근할 수 있는지 여부가) 대회에 큰 영향을 끼쳐서는 안 됩니다.
  • 따라서, 다음과 같은 LLM의 사용을 명시적으로 금지합니다.
    1. LLM에 자동화된 방법을 이용해서 다량의 출력을 얻어내는 행위
    2. LLM을 다수 사용해서 같은 목적을 위한 서로 다른 코드를 출력하도록 하는 행위
    3. 다량의 코드 혹은 아이디어를 LLM을 이용해서 선별하는 행위
  • 대회 참여에 LLM의 활용이 필수적인 것은 아니며, LLM 없이도 대회에 참여할 수 있습니다.

허용하는 예시

  • 문제 번역 및 아이디어 구상을 위해 LLM을 활용
  • 코드의 작성 및 디버깅을 위해 LLM 및 LLM이 탑재된 IDE(Codex, Claude Code, Gemini Code Assist, Cursor 등)를 사용
    • IDE의 Auto-complete, Ask, Plan Mode 등을 사용
  • Chain-of-thought 방식을 이용해서 답변을 생성하는 행위
  • 실행 중 LLM을 사용하지 않는 모든 방식의 모든 프로그램 활용
    • 이는 LLM으로 작성된 자동화 프로그램을 실행해서는 안 된다는 의미가 아닙니다.
  • LLM 이외의 방법으로 코드를 대량으로 작성하고 평가하는 행위

허용하지 않는 예시

  • 스크립트를 사용해 LLM을 대량으로 호출한 이후 문제에 대한 코드를 특정한 방법으로 골라 제출하는 행위
    • LLM을 사용하지 않은 방법을 이용해서 코드를 선별했더라도, LLM으로 만들어진 코드라면 부정행위에 해당합니다.
  • 하나의 프롬프트를 사용하였지만 LLM이 자체적으로 대량의 코드를 생성하여 그 중 일부를 사용자에게 제공하는 행위
  • 어떠한 방법으로든 LLM이 작성하거나 수정한 글을 리플레이 본문에 포함하는 행위
    • 예외: LLM과의 대화 혹은 문구를 내용 그대로 리플레이에 첨부하거나 인용하는 경우에는 허용합니다.

LLM에게 직접 프롬프팅하지 않더라도 LLM이 부정행위에 해당하는 행동을 한 경우에는, 본인이 부정행위를 한 것입니다. LLM의 사용에 대한 모든 책임은 본인에게 있습니다.

주최 측은 필요한 경우 참가자에게 문제 풀이 과정에 대해 설명을 요청할 수 있으며, 참가자는 이에 성실히 응답해야 합니다. 코드 관리 미숙으로 인해 문제가 발생한 경우에도 불이익을 받을 수 있습니다. LLM 도구를 사용하는 경우, 데이터를 학습에 사용하는 것을 opt-out 해야 합니다.


Q & A

Q1. LLM 모델이 Chain-of-Thought 방식을 활용하는데, 이것도 API를 이용한 결과물 대량 생성인가요?

A1. 아니오, Chain-of-Thought를 사용하더라도 질의를 수동으로 했다면 대량 생성으로 판단하지 않습니다.

Q2. LLM에 같은 질문을 여러 번 했는데, 이것도 대량 생성으로 취급되나요?

A2. 아니오, API나 스크립트를 활용하여 자동화된 방법으로 질의를 한 것이 아니라면 대량 생성으로 판단하지 않습니다. 단, 수동이더라도 계정이나 세션을 동시에 여럿 활용하여 수십 회 이상의 동일한 질의를 하는 경우 대량 생성에 준하게 취급될 수 있습니다.

Q3. 직접 제출되는 코드는 아니지만, 테스트용 코드들을 사용할 때에도 위의 제한 사항들이 적용되나요?

A3. 네, 적용됩니다. 코드가 제출되지 않았더라도, 문제를 풀 때 사용한 모든 코드는 제한 사항을 지켜서 작성해야 합니다.

Q4. LLM이 탑재된 IDE가 자동으로 도구 호출을 사용합니다. 이는 부정행위인가요?

A4. 기본적으로 IDE가 자동으로 도구 호출을 사용하는 것은 부정행위가 아니나, 해당 도구 호출이 자동화된 LLM 도구 호출 혹은 LLM이 생성한 코드에 대한 평가가 들어가는 경우에는 부정행위가 됩니다. 이 도구 사용 감독에 대한 책임은 본인에게 있습니다.

Q5. LLM 사용법을 타인에게 배우는 것은 부정행위인가요?

A5. 대회 사용을 목적으로 하여 어떠한 것이든 타인에게 도움을 받는 행위는 부정행위입니다.

Q6. 외부에서 생성된 코드가 다량의 코드 생성으로 만들어진 코드라면, 해당 코드는 사용할 수 있나요?

A6. 위의 “아래의 행위는 부정행위가 아닙니다.” 항목을 참고해주세요.

Q7. 여러 종류의 LLM을 사용하기 위해 LLM 세션을 여럿 사용할 수 있나요?

A7. 여러 세션을 동시에 사용하지 않는다면 LLM 세션을 여럿 사용해도 됩니다.

Q8. 주최측에서 사용하기 위한 LLM을 지원해 주나요?

A8. 주최측에서 별도의 LLM은 지원하지 않습니다.

Q9. 대회에서 제출되는 코드 내부에서 AI 모델 및 생성형 AI를 사용할 수 있나요?

A9. 소스코드와 바이너리 크기 제한 안에 들어간다면 가능합니다. 단, 대회 환경은 네트워크 통신이 되지 않습니다. 자세한 내용은 "개발 도구 사용 안내"를 참고해주시기 바랍니다.