/solved-ac_solution

representing solved.ac system

Primary LanguageDart

solved.ac solution

solved.ac 시스템 이해를 돕기 위한 문서입니다.
비공식 API 문서를 참고하여 제작하였습니다.
/lib 디렉토리에는 solved.ac의 API를 이용한 간단한 예제가 있습니다.
원작자의 요청에 따라 언제든 지워질 수 있습니다.


1. solved.ac

solved.acBOJ 문제들에 태그와 난이도를 붙이는 커뮤니티 프로젝트입니다.


2. 티어 시스템

사용자의 티어는 AC 레이팅에 따라 결정됩니다.
AC 레이팅의 산정 기준은 아래와 같습니다.

  1. ratingByProblemsSum
  2. ratingByClass
  3. ratingBySolvedCount
  4. ratingByVoteCount

2.1. ratingByProblemsSum

ratingByProblemsSum은 자신이 푼 상위 100문제의 난이도 합에 따른 레이팅입니다.
난이도는 Unrated부터 Ruby 1까지 0~30까지의 정수로 표현됩니다.
각 난이도별 획득 가능한 점수는 아래와 같습니다.

Tier\Rank V IV III II I
Unrated 0
Bronze 1 2 3 4 5
Silver 6 7 8 9 10
Gold 11 12 13 14 15
Platinum 16 17 18 19 20
Diamond 21 22 23 24 25
Ruby 26 27 28 29 30

2.2. ratingByClass

ratingByClass는 자신이 취득한 클래스에 따른 레이팅입니다.
최대 250점을 획득할 수 있으며, 클래스 5까지는 획득하는 것이 효율이 높습니다.
각 클래스별 획득 가능한 점수는 아래와 같습니다.

클래스 1 2 3 4 5 6 7 8 9 10
획득 점수 25 25 50 50 50 10 10 10 10 10
누적합 25 50 100 150 200 210 220 230 240 250

2.3. ratingBySolvedCount

ratingBySolvedCount은 자신이 푼 문제 수에 따른 레이팅입니다.
1140문제 정도 해결시, 최대치인 175점을 얻을 수 있습니다.

$$\begin{align} 175 × (1 − 0.995^{푼 문제 수}) \end{align}$$

2.4. ratingByVoteCount

ratingByVoteCount은 자신이 기여한 문제 수에 따른 레이팅입니다.
P5 이상 사용자에 한해 기여 내역과 점수가 인정됩니다.
100문제 정도 기여시, 최대치인 25점을 얻을 수 있습니다.

$$\begin{align} 25 × (1 − 0.995^{기여한 문제 수}) \end{align}$$