해커랭크 코딩 대회 생성 가이드
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
개발 툴
대상자
- 코딩 대회 운영자, 프로그래밍 문제 출제자
- 중급 이상의 프로그래밍 지식 보유자
핵심 요약
- DSL(Domain Specific Language)을 사용하여 코드 스텁(code stub) 생성 가능
- 모더레이터(Moderator)를 통해 대규모 대회 관리 가능
- 테스트 케이스는
testcases.zip
형식으로 일괄 업로드 가능
섹션별 세부 요약
1. 계정 생성 및 대회 시작
- STEP-1: 해커랭크 계정 로그인 후 Dashboard에서
administration
메뉴 선택 - STEP-2:
create contest
버튼 클릭하여 대회 생성 - 모더레이터는 대회 관리 및 참가자 커뮤니케이션 담당
2. 문제 생성 및 관리
- Challenges 섹션에서 사용자 정의 문제 또는 기존 문제 활용 가능
- 문제명 및 설명은
.md
형식으로 작성 가능 - 문제 스펙은
MarkDown
으로 스타일링 가능
3. 코드 스텁 생성
Code stubs
섹션에서 DSL을 사용해 다중 언어 지원 코드 템플릿 생성- 예시 코드:
```dsl
function(boolean, isPower, integer n)
integer(n)
invoke(boolean, result, isPower, n)
print(boolean, result)
```
function
은 함수 정의,invoke
는 호출,print
는 출력 명령
4. 테스트 케이스 관리
- 입력/출력 파일은
input00.txt
,output00.txt
형식으로 생성 - 테스트 케이스 대량 생성 시 커스텀 스크립트 활용 가능
- 예시 폴더 구조:
```
testcases.zip
├── input00.txt
├── output00.txt
├── input01.txt
└── output01.txt
```
5. DSL 문법 요약
- 데이터 타입 정의:
integer(a)
,boolean(result)
- 배열 생성:
- 1D 배열: Array(integer, a, n, single)
- 2D 배열: 2DArray(character, grid, n, n+1)
- 루프 구문:
```dsl
loop(t)
integer(n)
endloop
```
- 함수 정의:
```dsl
Function(integer_array, solve, integer x, integer_array board)
```
결론
- DSL을 활용해 효율적으로 코드 스텁을 생성하고, 커스텀 스크립트로 테스트 케이스를 자동화
- 대규모 대회는 모더레이터와 협업하여 관리
- 문제 출제 시 DSL 문법을 철저히 준수하여 예상치 못한 오류 방지