codedang
codedang copied to clipboard
User가 Contest에서 Problem을 풀었을 때, ContestProblem에 점수를 배정하고, Contest에서 AC 개수에 따른 점수 계산하는 feature.
Describe the problem and solution
Contest에 있는 문제들을 필요한 것으로 보입니다.
현재 하기 이미지처럼 ContestProblem 테이블이 정의되어 있습니다.
여기서
score
field가 의미하는 것이 만점의 상대적인 비율이라고 알고 있습니다.
예를 들어서 다음과 같은 상황을 가정하겠습니다.
Contest에는 3개의 문제가 있습니다. (ContestProblem record가 총 3개 있습니다.)
만점이 100점이고, 각 record의 score
field값은 2, 1, 1이라고 합시다.
그러면 각 ContestProblem에 배정되는 실제 문제 배점은 50, 25, 25점입니다.
여기서 논의 해야 할 것은 2가지입니다.
- Contest table에 만점에 해당하느 field를 추가하여, Contest별로 만점을 설정할 것인가.
- ContestProblem의
score
field가 이름만 봤을 때는 만점에서 각 ContestProblem이 차지하는 비율이라는 게 추론이 되지 않아서, field name을scoreWeight
로 바꿀 것인가
위 두 가지를 논의를 하고 feature를 개발해야 합니다. #1203 에서 파생된 issue입니다.
Validations
- [X] Follow our Code of Conduct
- [X] Read the Contributing Guidelines
- [X] Check that there isn't already an issue
일단 잠정적으로는 LeetCode의 방식을 따라 가기로 했습니다. 리트코드 방식: ICPC + 코드포스 푼 문제의 score 합산해서 정렬 score가 같으면 페널티 역순으로 정렬 페널티 = 마지막으로 푼 문제의 소요 시간 + 틀린 문제 수 * 5분