Update history:

1. 알고리즘 연습용 문제

stage1_problems.zip

위 파일을 다운로드해서 압축을 해제하면 총 18개의 json파일을 얻습니다. 각각의 json파일은 참가팀이 알고리즘을 개발하기 위해 사용할 문제들입니다. 18개의 문제들은 모두 상이한 특성(주문 개수, 고정비 등)을 가집니다. 공개된 문제들은 실제 주문 데이터를 바탕으로 익명화를 위해 약간의 가공이 이루어졌습니다.

예선,본선,결선의 단계마다 새로운 문제들이 공개될 예정입니다. 대회의 진행상황을 검토해서 다음 단계 문제들의 특성이 결정될 예정입니다.

<aside> 💡 알고리즘을 제출하면 위에 공개만 문제들이 아닌 별도의 숨겨진 문제들을 이용해서 평가가 이루어짐. 평가용 숨겨진 문제들은 공개된 문제들과 비슷한 특성을 가짐 ⇒ 평가용 문제의 특징(주문 개수 등)은 공개하지 않으나 연습용 문제들과 크게 차이가 나지는 않음

</aside>

2. 알고리즘 시간제한

예선의 알고리즘 실행시간 제한은 문제당 1분(60초) 입니다. 알고리즘이 시간제한을 넘기면 문제풀이를 강제로 종료하고 그 문제에 대해서는 최하 점수(-1점)을 받습니다.

<aside> 💡 알고리즘의 내부에서 지속적으로 실행시간을 체크하여 제한시간을 넘지 않아야 함. 예를 들어 알고리즘 내부에서 사용하는 특정 함수의 시간이 오래걸릴 수 있는 경우 그 함수 내부에서 제한시간을 체크하지 않는다면 알고리즘의 실행 시간이 제한시간을 넘길 수 있음. 참가팀은 이런 부분에 유의하여 알고리즘이 제한 시간을 넘지 않도록 할고리즘의 실행단계 마다 충분한 여유시간이 있는지 확인해야 함

</aside>

<aside> 💡 참가팀이 알고리즘을 개발하는 환경과 평가 서버의 환경 차이로 발생할 수 있는 실행 시간차이도 주의필요. 특히 같은 알고리즘을 같은 서버 환경에서 실행하더라도 알고리즘 실행시간에는 약간의 차이가 발생할 수 있는데, 이점을 고려해야 함

</aside>

3. Randomized 알고리즘

알고리즘에서 randomness를 사용하는 경우에는 알고리즘의 실행시마다 결과가 다르게 나올 수 있습니다. 알고리즘 평가는 알고리즘을 제출한 직후 단 한번만 이루어집니다. 따라서, 같은 알고리즘을 여러번 재 제출하면 제출 시마다 다른 난수(random number)를 얻어 상이한 결과를 얻을수도 있습니다. 주최측은 제출한 알고리즘이 특정 난수조건(random seed)를 가지는 것을 보장하지 않습니다. 즉, 알고리즘의 평가 결과는 알고리즘이 난수를 사용하는 경우 항상 같다는 것을 보장하지 않습니다.