codedang icon indicating copy to clipboard operation
codedang copied to clipboard

User가 Contest에서 Problem을 풀었을 때, ContestProblem에 점수를 배정하고, Contest에서 AC 개수에 따른 점수 계산하는 feature.

Open gyunseo opened this issue 1 year ago • 1 comments

Describe the problem and solution

Contest에 있는 문제들을 필요한 것으로 보입니다.
현재 하기 이미지처럼 ContestProblem 테이블이 정의되어 있습니다.
image 여기서 score field가 의미하는 것이 만점의 상대적인 비율이라고 알고 있습니다.
예를 들어서 다음과 같은 상황을 가정하겠습니다. Contest에는 3개의 문제가 있습니다. (ContestProblem record가 총 3개 있습니다.) 만점이 100점이고, 각 record의 score field값은 2, 1, 1이라고 합시다. 그러면 각 ContestProblem에 배정되는 실제 문제 배점은 50, 25, 25점입니다.
여기서 논의 해야 할 것은 2가지입니다.

  1. Contest table에 만점에 해당하느 field를 추가하여, Contest별로 만점을 설정할 것인가.
  2. ContestProblem의 score field가 이름만 봤을 때는 만점에서 각 ContestProblem이 차지하는 비율이라는 게 추론이 되지 않아서, field name을 scoreWeight로 바꿀 것인가

위 두 가지를 논의를 하고 feature를 개발해야 합니다. #1203 에서 파생된 issue입니다.

Validations

gyunseo avatar Jan 22 '24 07:01 gyunseo

일단 잠정적으로는 LeetCode의 방식을 따라 가기로 했습니다. 리트코드 방식: ICPC + 코드포스 푼 문제의 score 합산해서 정렬 score가 같으면 페널티 역순으로 정렬 페널티 = 마지막으로 푼 문제의 소요 시간 + 틀린 문제 수 * 5분

gyunseo avatar Jan 24 '24 15:01 gyunseo