<colbgcolor=#17ce3a><colcolor=#FFF> solved.ac | |
국가 | 대한민국 |
사이트 목적 | 알고리즘 트레이닝 |
소유자 | 박수현 (shiftpsh) |
설립일 | 2020년 6월 5일[1] |
회원 수 | 129,906명[기준][3] |
총 기여 수 | 415,136회[기준] |
난이도 제공 문제 | 22,441개[기준] |
링크 | 홈페이지 |
[clearfix]
1. 개요
알고리즘 트레이닝 사이트 Baekjoon Online Judge(BOJ)에 수록된 문제들의 난이도를 측정하는 커뮤니티 프로젝트. 해결한 문제들을 바탕으로 사용자의 티어를 계산하고, 학습의 게임화를 통해 알고리즘 문제해결 학습 동기를 부여한다. 2020년에 서강대학교 컴퓨터공학부 학생인 박수현(shiftpsh)에 의해 개설되었다.2020년 이전의 BOJ에는 '난이도'라는 개념이 존재하지 않았다. 문제 번호가 난이도 순서가 아닌 BOJ의 특성상 초심자들이 좌절하는 일이 잦았고, 기존 알고리즘 학습자 입장에서도 연습문제를 고르기 어려웠다는 단점이 있었다. 이런 단점을 거의 완벽하게 보완하여 유저들의 찬사를 받고 있다.
BOJ와 연동하여 해결한 문제에 난이도 의견을 제출할 수 있다. 일정 티어 이상이 되면 난이도 의견이 문제 난이도에 반영되며[요구_티어], 모인 난이도 의견은 공식을 거쳐 문제의 난이도가 된다. 이렇게 정해진 문제 난이도는 solved.ac에서 확인할 수 있으며, BOJ에서도 추가 연동 과정을 거치면 확인할 수 있다.
프로그래밍 문제들에 대규모 커뮤니티의 집단지성을 이용해 난이도를 매기는 시도는 국내에서 이 사이트가 최초다.
초심자라도 솔브닥의 클래스1~2 문제를 잘 따라가기만 하면 실버까지는 무난하게 찍을 수 있으며, 골드로 올라오면 비로소 프로그래밍의 기본기를 떼고 본격적인 알고리즘의 세계에 들어섰다고 봐도 무방하다. 현재 자기 티어에 준하는 난이도를 풀어야 레이팅이 올라가기 때문에 골드부터는 사실상 꾸준함의 싸움이다.
2. AC 레이팅
해결한 문제들을 바탕으로 사용자의 티어를 계산해 주는 시스템이 있다. 해결한 문제 수로 랭킹을 산정하는 BOJ와 다르게 어느 순간부터는 쉬운 문제로 레이팅이 올라가지 않으며, 어려운 문제를 해결해야 레이팅이 올라가므로 어려운 문제를 해결할 동기를 마련해 준다.레이팅 시스템인 'AC 레이팅'으로 티어를 결정한다. AC 레이팅은 다음 요소들의 합이다.
- 자신이 해결한 문제들의 난이도 합 - 어려운 순으로 정렬해 최대 100개까지 (최대 3,000[7])
- Bronze V는 1점, Bronze IV는 2점, ..., Ruby I는 30점이다.
- 중복된 문제나 번외 문제 등 일부 문제는 레이팅을 주지 않으며, solved.ac에서 노란색 마름모꼴 모양의 문제해결 경고 아이콘이 붙는다.
- CLASS에 따른 보너스 (최대 250)
- 푼 문제 수에 따른 보너스 - (175 (1 − 0.995푼 문제 수))를 반올림 (최대 175)
- 기여 수에 따른 보너스 - (25 (1 − 0.9기여 수))를 반올림 (최대 25)
푼 문제 수 보너스는 1,169문제를 풀면 만점이고, 기여 수 보너스는 38문제에 기여하면 만점이다.
- [보너스 자세히 보기]
- ||<table bordercolor=#ccc,#333><table bgcolor=#fff,#1f2023><rowbgcolor=#eee,#25282a><colbgcolor=#eee,#25282a> 보너스 || 해결한 문제 || 이전 대비 ||<colbgcolor=#eee,#25282a> 보너스 || 해결한 문제 || 이전 대비 ||
1 1 +1 89 141 +2 2 2 +1 90 143 +2 3 3 +1 91 146 +3 4 5 +2 92 148 +2 5 6 +1 93 151 +3 6 7 +1 94 153 +2 7 8 +1 95 155 +2 8 9 +1 96 158 +3 9 10 +1 97 160 +2 10 12 +2 98 163 +3 11 13 +1 99 166 +3 12 14 +1 100 168 +2 13 15 +1 101 171 +3 14 17 +2 102 174 +3 15 18 +1 103 176 +2 16 19 +1 104 179 +3 17 20 +1 105 182 +3 18 22 +2 106 185 +3 19 23 +1 107 188 +3 20 24 +1 108 191 +3 21 25 +1 109 194 +3 22 27 +2 110 197 +3 23 28 +1 111 200 +3 24 29 +1 112 203 +3 25 31 +2 113 206 +3 26 32 +1 114 209 +3 27 33 +1 115 212 +3 28 35 +2 116 216 +4 29 36 +1 117 219 +3 30 37 +1 118 223 +4 31 39 +2 119 226 +3 32 40 +1 120 230 +4 33 41 +1 121 233 +3 34 43 +2 122 237 +4 35 44 +1 123 241 +4 36 46 +2 124 245 +4 37 47 +1 125 248 +3 38 49 +2 126 252 +4 39 50 +1 127 257 +5 40 52 +2 128 261 +4 41 53 +1 129 265 +4 42 55 +2 130 269 +4 43 56 +1 131 274 +5 44 58 +2 132 278 +4 45 59 +1 133 283 +5 46 61 +2 134 288 +5 47 62 +1 135 292 +4 48 64 +2 136 297 +5 49 65 +1 137 303 +6 50 67 +2 138 308 +5 51 68 +1 139 313 +5 52 70 +2 140 319 +6 53 72 +2 141 324 +5 54 73 +1 142 330 +6 55 75 +2 143 336 +6 56 77 +2 144 343 +7 57 78 +1 145 349 +6 58 80 +2 146 356 +7 59 82 +2 147 363 +7 60 83 +1 148 370 +7 61 85 +2 149 377 +7 62 87 +2 150 385 +8 63 89 +2 151 393 +8 64 90 +1 152 401 +8 65 92 +2 153 410 +9 66 94 +2 154 419 +9 67 96 +2 155 428 +9 68 98 +2 156 438 +10 69 100 +2 157 449 +11 70 101 +1 158 460 +11 71 103 +2 159 472 +12 72 105 +2 160 484 +12 73 107 +2 161 497 +13 74 109 +2 162 512 +15 75 111 +2 163 527 +15 76 113 +2 164 544 +17 77 115 +2 165 562 +18 78 117 +2 166 582 +20 79 119 +2 167 604 +22 80 121 +2 168 629 +25 81 123 +2 169 657 +28 82 126 +3 170 691 +34 83 128 +2 171 731 +40 84 130 +2 172 781 +50 85 132 +2 173 848 +67 86 134 +2 174 950 +102 87 137 +3 175 1169 +219 88 139 +2 175점 만점 <colbgcolor=#eee,#25282a> 보너스 기여한 문제 이전 대비 <colbgcolor=#eee,#25282a> 보너스 기여한 문제 이전 대비 2 1 +1 17 11 +1 5 2 +1 18 12 +1 7 3 +1 19 13 +1 9 4 +1 20 15 +2 10 5 +1 21 17 +2 12 6 +1 22 19 +2 13 7 +1 23 22 +3 14 8 +1 24 27 +5 15 9 +1 25 38 +11 16 10 +1 25점 만점
CLASS에 따른 보너스는 아래와 같다.
CLASS | 누적 보너스 레이팅 | 이전 CLASS 대비 | 달성 인원 수[8] | 달성 %[9] |
<colcolor=white> 0 | +0 | +0 | - | - |
1 | +25 | +25 | 69266 | 69.23% |
2 | +50 | +25 | 34988 | 34.97% |
3 | +100 | +50 | 20125 | 20.11% |
4 | +150 | +50 | 11162 | 11.16% |
5 | +200 | +50 | 4524 | 4.52% |
6 | +210 | +10 | 1438 | 1.44% |
7 | +220 | +10 | 692 | 0.69% |
8 | +230 | +10 | 311 | 0.31% |
9 | +240 | +10 | 106 | 0.11% |
10 | +250 | +10 | 27 | 0.03% |
2.1. 티어
달성한 레이팅에 따라 Unrated부터 Master까지의 티어가 결정된다. 레이팅에 따른 티어 컷은 아래와 같다.
달성 인원 수는 2024년 3월 3일 기준이다.
티어 | 필요 레이팅 | 이전 티어 대비 | 달성 인원 수 | 상위 %[10] |
Unrated | 0 | 0 | 146,712[11] | 100.00% |
Bronze V[12] | 30 | +30 | 100,058 | 100.00% |
Bronze IV | 60 | +30 | 118,652 | 92.73% |
Bronze III | 90 | +30 | 112,577 | 87.89% |
Bronze II | 120 | +30 | 105,204 | 82.22% |
Bronze I | 150 | +30 | 98,936 | 77.32% |
Silver V[13] | 200 | +50 | 89,807 | 70.19% |
Silver IV | 300 | +100 | 75,372 | 58.91% |
Silver III | 400 | +100 | 65,123 | 50.90% |
Silver II | 500 | +100 | 57,155 | 43.87% |
Silver I | 650 | +150 | 47,673 | 36.36% |
Gold V[14] | 800 | +150 | 39,978 | 30.36% |
Gold IV | 950 | +150 | 32,442 | 24.65% |
Gold III | 1,100 | +150 | 25,866 | 19.65% |
Gold II | 1,250 | +150 | 19,474 | 14.68% |
Gold I | 1,400 | +150 | 13,799 | 10.32% |
Platinum V[15] | 1,600 | +200 | 7,494 | 5.76% |
Platinum IV | 1,750 | +150 | 4,100 | 3.32% |
Platinum III | 1,900 | +150 | 2,457 | 1.95% |
Platinum II | 2,000 | +100 | 1,851 | 1.45% |
Platinum I | 2,100 | +100 | 1,412 | 1.13% |
Diamond V[16] | 2,200 | +100 | 1,090 | 0.86% |
Diamond IV | 2,300 | +100 | 724 | 0.58% |
Diamond III | 2,400 | +100 | 491 | 0.39% |
Diamond II | 2,500 | +100 | 359 | 0.29% |
Diamond I | 2,600 | +100 | 244 | 0.20% |
Ruby V[17] | 2,700 | +100 | 158 | 0.13% |
Ruby IV | 2,800 | +100 | 82 | 0.068% |
Ruby III | 2,850 | +50 | 60 | 0.044% |
Ruby II | 2,900 | +50 | 39 | 0.031% |
Ruby I | 2,950 | +50 | 30 | 0.024% |
Master[18] | 3,000 | +50 | 25 | 0.019% |
===# 경험치 #===
2021년 2월 28일까지는 경험치로 티어를 결정했었다. 2023년 6월 5일 시즌 3 업데이트로 경험치는 폐지되었다.
6월 5일 이전에는 해결한 문제의 난이도에 따라 다음과 같은 경험치를 획득할 수 있었다.
문제 난이도 | 지급 경험치 | 증가율 |
Not Ratable[19] | 0 | N/A |
Unrated[20] | 320 | N/A[21] |
Bronze V | 480 | 1.500 |
Bronze IV | 672 | 1.400 |
Bronze III | 954 | 1.420 |
Bronze II | 1,374 | 1.440 |
Bronze I | 1,992 | 1.450 |
Silver V | 2,909 | 1.460 |
Silver IV | 4,276 | 1.470 |
Silver III | 6,329 | 1.480 |
Silver II | 9,430 | 1.490 |
Silver I | 14,145 | 1.500 |
Gold V | 21,288 | 1.505 |
Gold IV | 32,145 | 1.510 |
Gold III | 48,699 | 1.515 |
Gold II | 74,023 | 1.520 |
Gold I | 112,885 | 1.525 |
Platinum V | 172,714 | 1.530 |
Platinum IV | 265,117 | 1.535 |
Platinum III | 408,280 | 1.540 |
Platinum II | 630,792 | 1.545 |
Platinum I | 977,727 | 1.550 |
Diamond V | 1,520,366 | 1.555 |
Diamond IV | 2,371,771 | 1.560 |
Diamond III | 3,711,822 | 1.565 |
Diamond II | 5,827,560 | 1.570 |
Diamond I | 9,178,407 | 1.575 |
Ruby V | 14,501,883 | 1.580 |
Ruby IV | 22,985,485 | 1.585 |
Ruby III | 36,546,921 | 1.590 |
Ruby II | 58,292,339 | 1.595 |
Ruby I | 93,267,742 | 1.600 |
3. 태그
유저들에 의해 분류되는 태그들이다. 문제를 해결하는 데 사용하는 알고리즘과 자료 구조, 방법론 등으로 분류되어 있다. 하위 분류의 태그를 가진 문제들은 모두 상위 분류의 태그를 갖지만, 상위 태그를 가진 문제들은 하위 태그로 반드시 분류될 필요는 없다. 하나의 태그가 두 개 이상의 상위 분류를 가질 수도 있다.
특정 태그로 분류되어있는 문제를 꼭 해당 방법으로 풀어야 한다는 규칙은 없다. 예를 들어 '깊이 우선 탐색' 태그가 달려있는 문제라도 너비 우선 탐색으로 풀 수도 있고, 그래프나 수학 문제를 DP 방식으로 풀 수도 있다. 결과적으로 문제에서 원하는 조건을 지키면서 해결하기만 하면 된다. 문제에 붙어있는 태그는 다르게 말하면 많은 사람들이 그 방법으로 이 문제를 풀었다는 암시적인 표시이긴 하나, 그것이 가장 효율적인 방법이라는 의미는 아니기 때문이다.
3.1. 태그 레이팅
AC 레이팅과 마찬가지로 태그에도 레이팅이 붙는다.- 자신이 해결한 문제들의 난이도 합 - 어려운 순으로 정렬해 최대 50개까지 (최대 3,000)
- Bronze V는 2점, Bronze IV는 4점, ..., Ruby I는 60점이다.
- 일부 문제는 레이팅을 주지 않는다.
- 푼 문제 수에 따른 보너스 - (200 (1 − 0.99푼 문제 수))를 반올림 (최대 200)
푼 문제 수 보너스는 597문제를 풀면 만점이다.
- [보너스 자세히 보기]
- ||<table bordercolor=#ccc,#333><table bgcolor=#fff,#1f2023><rowbgcolor=#eee,#25282a><colbgcolor=#eee,#25282a> 보너스 || 해결한 문제 || 이전 대비 ||<colbgcolor=#eee,#25282a> 보너스 || 해결한 문제 || 이전 대비 ||
2 1 +1 117 87 +1 4 2 +1 118 89 +2 6 3 +1 119 90 +1 8 4 +1 120 91 +1 10 5 +1 121 92 +1 12 6 +1 122 94 +2 14 7 +1 123 95 +1 15 8 +1 124 96 +1 17 9 +1 125 97 +1 19 10 +1 126 99 +2 21 11 +1 127 100 +1 23 12 +1 128 101 +1 24 13 +1 129 103 +2 26 14 +1 130 104 +1 28 15 +1 131 106 +2 30 16 +1 132 107 +1 31 17 +1 133 109 +2 33 18 +1 134 110 +1 35 19 +1 135 112 +2 36 20 +1 136 113 +1 38 21 +1 137 115 +2 40 22 +1 138 116 +1 41 23 +1 139 118 +2 43 24 +1 140 119 +1 44 25 +1 141 121 +2 46 26 +1 142 123 +2 48 27 +1 143 125 +2 49 28 +1 144 126 +1 51 29 +1 145 128 +2 52 30 +1 146 130 +2 54 31 +1 147 132 +2 55 32 +1 148 134 +2 56 33 +1 149 135 +1 58 34 +1 150 137 +2 59 35 +1 151 139 +2 61 36 +1 152 141 +2 62 37 +1 153 144 +3 63 38 +1 154 146 +2 65 39 +1 155 148 +2 66 40 +1 156 150 +2 68 41 +1 157 152 +2 69 42 +1 158 155 +3 70 43 +1 159 157 +2 71 44 +1 160 159 +2 73 45 +1 161 162 +3 74 46 +1 162 164 +2 75 47 +1 163 167 +3 77 48 +1 164 170 +3 78 49 +1 165 173 +3 79 50 +1 166 175 +2 80 51 +1 167 178 +3 81 52 +1 168 181 +3 83 53 +1 169 184 +3 84 54 +1 170 188 +4 85 55 +1 171 191 +3 86 56 +1 172 194 +3 87 57 +1 173 198 +4 88 58 +1 174 202 +4 89 59 +1 175 205 +3 91 60 +1 176 209 +4 92 61 +1 177 214 +5 93 62 +1 178 218 +4 94 63 +1 179 222 +4 95 64 +1 180 227 +5 96 65 +1 181 232 +5 97 66 +1 182 237 +5 98 67 +1 183 243 +6 99 68 +1 184 249 +6 100 69 +1 185 255 +6 101 70 +1 186 262 +7 102 71 +1 187 269 +7 103 72 +1 188 276 +7 104 73 +1 189 285 +9 105 74 +1 190 294 +9 106 75 +1 191 304 +10 107 76 +1 192 315 +11 108 77 +1 193 327 +12 109 78 +1 194 341 +14 110 79 +1 195 358 +17 111 81 +2 196 378 +20 112 82 +1 197 403 +25 113 83 +1 198 437 +34 114 84 +1 199 487 +50 115 85 +1 200 597 +110 116 86 +1 200점 만점
태그 레이팅은 500문제 이상 수록된 태그에 부여되며, 그 중에서 프로필에 표시되는 8개의 태그는 볼드체로 표시했다. 문제 수와 만점은 2023년 9월 10일 기준.
<colbgcolor=#eee,#25282a> 태그 | 문제 수 | 만점 | |
전체 | 레이팅 부여 | ||
#수학 | 5,504 | 5,460 | 3034 |
#자료 구조 | 3,236 | 3,216 | 3022 |
#애드 혹 | 1,099 | 1,079 | 3008 |
#그래프 이론 | 3,198 | 3,168 | 2994 |
#세그먼트 트리 | 1,126 | 1,115 | 2984 |
#구현 | 4,709 | 4,669 | 2976 |
#다이나믹 프로그래밍 | 3,498 | 3,481 | 2960 |
#트리 | 1,186 | 1,179 | 2952 |
#그리디 알고리즘 | 2,070 | 2,058 | 2930 |
#기하학 | 1,273 | 1,262 | 2910 |
#많은 조건 분기 | 699 | 688 | 2888 |
#그래프 탐색 | 1,760 | 1,738 | 2840 |
#조합론 | 786 | 783 | 2838 |
#정수론 | 1,233 | 1,229 | 2830 |
#해 구성하기 | 804 | 781 | 2830 |
#이분 탐색 | 1,046 | 1,045 | 2822 |
#문자열 | 2,072 | 2,061 | 2808 |
#깊이 우선 탐색 | 710 | 706 | 2752 |
#비트마스킹 | 612 | 612 | 2696 |
#정렬 | 1,555 | 1,551 | 2696 |
#데이크스트라 | 506 | 506 | 2677 |
#누적 합 | 777 | 775 | 2656 |
#너비 우선 탐색 | 877 | 871 | 2584 |
#브루트포스 알고리즘 | 1,885 | 1,873 | 2532 |
#해시를 사용한 집합과 맵 | 504 | 500 | 2357 |
#시뮬레이션 | 886 | 884 | 2252 |
#사칙연산 | 945 | 936 | 1282 |
- 수학
- 사칙연산
- 정수론
- 유클리드 호제법
- 확장 유클리드 호제법
- 소수 판정
- 에라토스테네스의 체
- 밀러-라빈 소수 판별법
- 모듈로 곱셈 역원
- 중국인의 나머지 정리
- 페르마의 소정리
- 오일러 피 함수
- 뫼비우스 반전 공식
- 폴라드 로
- 이산 로그
- 뤼카 정리
- 이산 제곱근
- 이산 k제곱근
- 조합론
- 번사이드 보조정리
- 확률론
- 기댓값의 선형성
- 선형대수학
- 미적분학
- 분할 정복을 이용한 거듭제곱
- 고속 푸리에 변환
- 다중 대입값 계산
- 수치해석
- 통계학
- 구현
- 시뮬레이션
- 다이나믹 프로그래밍
- 트리에서의 다이나믹 프로그래밍
- 비트필드를 이용한 다이나믹 프로그래밍
- 분할 정복을 사용한 최적화
- 커넥션 프로파일을 이용한 다이나믹 프로그래밍
- 덱을 이용한 다이나믹 프로그래밍
- 함수 개형을 이용한 최적화
- 커누스 최적화
- 단조 큐를 이용한 최적화
- 그래프 이론
- 그래프 탐색
- 다익스트라
- 최소 스패닝 트리
- 플로이드-와샬
- 벨만-포드
- 위상 정렬
- 강한 연결 요소
- 2-SAT
- 단절점과 단절선
- 오일러 경로
- 선인장
- 평면 그래프
- 쌍대 그래프
- 스토어-바그너
- 양방향 탐색
- 유향 최소 신장 트리
- 현 그래프
- 차수열
- 자료구조
- 큐
- 우선순위 큐
- 스택
- 연결 리스트
- 덱
- 세그먼트 트리
- 느리게 갱신되는 세그먼트 트리
- 퍼시스턴트 세그먼트 트리
- 다차원 세그먼트 트리
- 머지 소트 트리
- 분리 집합
- 해시를 사용한 집합과 맵
- 트리를 사용한 집합과 맵
- 희소 배열
- 문자열
- 파싱
- UTF-8 입력 처리
- KMP
- 라빈-카프
- 접미사 배열과 lcp 배열
- 정규 표현식
- 매내처
- Z
- 로프
- 그리디 알고리즘
- 브루트포스 알고리즘
- 정렬
- 기하학
- 피타고라스 정리
- 볼록 껍질
- 3차원 기하학
- 4차원 이상의 기하학
- 선분 교차 판정
- 다각형의 넓이
- 볼록 다각형 내부의 점 판정
- 오일러 지표
- 회전하는 캘리퍼스
- 오목 다각형 내부의 점 판정
- 보로노이 다이어그램
- 최소 외접원
- 반평면 교집합
- 델로네 삼각분할
- 픽의 정리
- 트리
- 최소 공통 조상
- 트라이
- 아호-코라식
- 접미사 트리
- 오일러 경로 테크닉
- 스플레이 트리
- Heavy-Light 분할
- 센트로이드
- 센트로이드 분할
- 링크/컷 트리
- 트리 동형 사상
- 회문 트리
- 도미네이터 트리
- 트리 압축
- 탑 트리
- 레드-블랙 트리
- 이분 탐색
- 병렬 이분 탐색
- Aliens 트릭
- 애드 혹
- 구성적
- 많은 조건 분기
- 비트마스킹
- 백트래킹
- 커누스 X
- 분할 정복
- 히르쉬버그
- 스위핑
- 두 포인터
- 최대 유량
- 최소 비용 최대 유량
- 최대 유량 최소 컷 정리
- 서큘레이션
- 게임 이론
- 스프라그-그런디 정리
- 임의 정밀도 / 큰 수 연산
- 오프라인 쿼리
- Mo's
- 오프라인 동적 연결성 판정
- 재귀
- 매개 변수 탐색
- 배낭 문제
- 런타임 전의 전처리
- 좌표 압축
- 해싱
- 포함 배제의 원리
- 작은 집합에서 큰 집합으로 합치는 테크닉
- 무작위화
- 중간에서 만나기
- 볼록 껍질을 이용한 최적화
- 제곱근 분할법
- 슬라이딩 윈도우
- 물리학
- 외판원 순회 문제
- 가장 긴 증가하는 부분 수열: O(n log n)
- 순열 사이클 분할
- 비트 집합
- 삼분 탐색
- 휴리스틱
- 이중 연결 요소
- 벌래캠프-매시
- 비둘기집 원리
- 홀의 결혼 정리
- 인터프리터
- 헝가리안
- 선형 계획법
- 매트로이드
- 일반적인 매칭
- 키타마사
- 쌍대성
- 담금질 기법
- 안정 결혼 문제
- 베이즈 정리
- 계산 이론
- 생성 함수
- 춤추는 링크
- 보이어-무어 다수결 투표
- 상수 최적화
- 차분 공격
4. 새싹 티어와 새싹 문제
solved.ac가 프로그래밍 문제해결 입문을 위해 큐레이션한 문제들이다. 프로그래밍 언어를 새로 시작할 때 풀어보기 좋은 문제들로 구성되어 있다. 입문자라면 CLASS 1에 도전하기 전에 풀고 넘어가면 좋을 것이다.새싹 티어 문제들의 레이팅은 대부분 Bronze V이고, 일부 문제들은 CLASS 1과 겹친다. 기존에는 새싹 티어의 문제가 Bronze V로 고정되었지만, 2024년 3월 이후 해제되었다.
분류 | 다루는 내용 | BOJ 단계별로 풀어보기 |
<colbgcolor=#96cc00><colcolor=white> 출력 | 출력 | 1 |
입력과 계산 | 입력, 사칙연산 | 1 |
조건 | if-문, 삼항 연산자 | 2 |
반복 | for-문, while-문 | 3 |
빠른 입출력 | 빠른 입출력 방법[22] | (3) |
배열 | 배열 | 4 |
문자열 | 문자, 문자열 | 6 |
5. CLASS
solved.ac에서 수준별로 엄선한 문제로, 2022년 8월 현재 CLASS 10까지 존재한다. 대부분 자료구조/알고리즘 기본 문제들과 비슷한 수준에서 도전해 보면 좋을 만한 문제들로 구성되어 있다. 단순히 문제를 많이 풀면 올라가는 티어와 달리 CLASS 문제들은 엄선된 특정 문제를 풀어야 하는 방식이기 때문에, 현재 자신의 실질적인 위치가 궁금하거나 빠른 실력향상을 원한다면 티어에 신경쓰기보다 이쪽을 먼저 공략해보는 것이 좋다.CLASS 1은 초보자들이 따라하기 쉬운 문제들로 구성되어 있으나, CLASS 3만 가도 머리를 싸매야 하는 문제들이 나온다. 주어진 개수만큼 문제를 풀면 해당 CLASS를 획득할 수 있으며, 에센셜 태그가 붙은 문제를 다 풀면 은장이, 모든 문제를 풀면 금장이 추가로 붙는다.
CLASS 9부터는 이전 CLASS를 통과해야 취득할 수 있다.
일반적인 실무를 위해서는 CLASS 3까지만 획득해도 충분하며, CLASS 4까지 취득하는 것은 구현력에 도움이 될 수 있다. 프로그래밍 대회에 등장하는 기초 알고리즘들을 배우고 싶다면 CLASS 5부터 차근차근 올라가보는 것도 도움이 된다.
아래 표는 각 CLASS에서 새롭게 다루는 내용들을 정리한 것이다. 이 내용들에 추가로 이전 CLASS까지들에서 다뤘던 내용이 심화된 문제들로 구성되어 있다.
CLASS | 새롭게 다루는 내용 | BOJ 단계별로 풀어보기 |
<colcolor=white> 1 | 입출력, 사칙연산, 조건문, 반복문, 함수, 배열, 문자열 | 1-7 |
2 | 브루트포스, 이분 탐색, 정수론( 에라토스테네스의 체), 조합론( 이항계수), 기하학( 피타고라스 정리), 스택, 큐, 덱, 정렬 | 8-13, 15-20, 27 |
3 | 집합과 맵, 비트마스킹, 다이나믹 프로그래밍, 누적 합, 그래프 탐색( 깊이 우선 탐색/ 너비 우선 탐색), 우선순위 큐, 그리디 알고리즘, 분할 정복, 좌표 압축 | 14, 21, 23-26, 28, 31 |
4 | 백트래킹, 트리, 최단거리 알고리즘( 데이크스트라, 벨만-포드, 플로이드-워셜), 최장 공통 부분 문자열, 최장 증가 부분 수열, 배낭 문제, 0-1 bfs | 22-23, 32, 35 |
5 | 투 포인터, 분리 집합, 위상 정렬, 최소 스패닝 트리, 기하학(선분 교차, CCW), 비트필드를 이용한 다이나믹 프로그래밍 | 33, 36-37, 39-40, 42 |
6 | 모노톤 스택, 모노톤 큐, 트리 DP, 볼록 껍질, 최소 공통 조상, KMP, 강한 연결 요소, 2-SAT, 세그먼트 트리, 스위핑, 트라이 | 30, 38, 41, 43-48 |
7 | 이분 매칭, 최대 유량, 최대 유량 최소 컷 정리, 최소 비용 최대 유량, 오프라인 쿼리, Mo's, 접미사 배열, Lazy propagation, Convex-Hull Trick, 머지 소트 트리, 매내처, 스프라그-그런디 정리, 오일러 경로 테크닉 | 49-52, 55-57 |
8 | 고속 푸리에 변환, Heavy-light 분할, 센트로이드 분할, 아호-코라식, 분할 정복을 이용한 DP 최적화, 퍼시스턴트 세그먼트 트리 | 53-57 |
9 | 다차원 세그먼트 트리, 커넥션 프로파일 DP, 병렬 이분 탐색, 오프라인 동적 연결성 판정, 홀의 결혼 정리, 이중 연결 요소, 정수론적 변환, 슬로프 트릭, 서큘레이션, 트리 동형 사상, 불도저 트릭 | |
10 | 스플레이 트리, 반평면 교집합, 평면 그래프, 키타마사, 벌래캠프, Aliens 트릭, 일반 매칭, 세그먼트 트리 beats, 히르쉬버그 |
6. 아레나
BOJ에서 개최되는 대회 중 일부가 아레나 대회로 지정되며, Codeforces처럼 사전에 참가 신청을 하면 종료 이후 대회 성적에 따라 참가자의 아레나 레이팅이 변동된다.solved.ac 측에서 자체적으로 상품이 걸린 그랜드 아레나를 개최하기도 한다.
2024년 6월 현재 아레나 라운드 24 이후 3개월 가까이 신규 아레나 대회가 개최되지 않고 있다.
6.1. 아레나 레이팅
아레나 라운드에 참가한 경우 사이트에서 공개한 계산식에 의해 1 이상의 아레나 레이팅이 부여된다.문제풀이 티어와 같이 아레나 티어 역시 존재하며, 아레나 대회에서 참가 제한 조건으로도 사용된다. 티어 컷은 다음과 같다.
티어 | 필요 레이팅 | 이전 티어 대비 |
<colcolor=white> ?[23] | 0 | 0 |
C | 1 | +1 |
C+ | 400 | +399 |
B | 800 | +400 |
B+ | 1000 | +200 |
A | 1200 | +200 |
A+ | 1400 | +200 |
S | 1600 | +200 |
S+ | 1800 | +200 |
SS | 2000 | +200 |
SS+ | 2200 | +200 |
SSS | 2400 | +200 |
SSS+ | 2600 | +200 |
X
|
3000 | +400 |
7. 프로필 꾸미기 요소
자세한 내용은 solved.ac/프로필 꾸미기 요소 문서 참고하십시오.8. 기여
solved.ac 최초 연동 후 14일이 지나면 문제에 난이도 의견을 제출할 수 있다. Platinum V 티어가 된 후부터 남긴 기여는 문제의 난이도에 실제로 반영된다.다만, 태그 기여의 경우는 Platinum V 이상이 되지 않아도 문제에 반영된다.
9. 이벤트
비정기적으로 문제 해결 이벤트가 열린다.-
빼빼로 데이 2021: 2021년 11월 7일 오전 6시 - 11월 14일 오전 6시
링크
문제를 많이 풀면 빼빼로를 모을 수 있고, 순위에 따라 실제 빼빼로를 얻을 수 있다. 첫 이벤트이자 오로지 문제 수로만 순위가 결정되었던 마지막 이벤트다.
{{{#!folding 【자세한 이벤트 내용】
- Bronze V - Bronze I: 다크 초콜릿 1개
- Silver V - Silver I: 화이트 초콜릿 1개
- Gold V - Gold I: 막대 과자 1개[24]
- Platinum V - Diamond I: 민트 초콜릿 1개
- Ruby V - Ruby I: 루비 초콜릿
- 다크 초콜릿 × 3 + 막대 과자 → 빼빼로
- 화이트 초콜릿 × 3 + 막대 과자 → 쿠키&크림 빼빼로
- 민트 초콜릿 × 3 + 막대 과자 → 민트초코 빼빼로
-
루비 초콜릿 × 3 + 막대 과자 → 루비 빼빼로
}}} -
한별
포스: 2022년 4월 1일 오후 12시 - 4월 2일 오후 8시 22분 22초
링크
만우절을 기념해 메이플스토리의 스타포스 강화를 그대로 가져온 이벤트가 열렸다. 4월 2일 오후 8시 22분 22초는 BOJ에서 열리는 만우절 대회 <구데기컵>의 종료 시각이다. -
여름 엽서 꾸미기: 2022년 6월 26일 오전 6시 - 8월 1일 오전 6시
링크
문제를 풀고 스티커를 받아, 이 스티커의 조합에 따른 숨겨진 조건을 만족해 높은 점수를 달성해야 한다. -
솔브드
블랙잭: 2022년 8월 2일 오전 6시 - 8월 22일 오전 6시
링크
문제를 풀면 난이도에 따라 최대 점수가 정해진 카드를 한 장 받을 수 있다. 카드를 뒤집으면 1부터 최대 점수 사이의 랜덤한 수가 하나 나오고, 이 수들의 합을 10000점에 가깝게 만들어야 한다. 10000점이 넘으면 버스트되어 처음부터 다시 시작해야 한다. - 나중에 이 게임의 일반화된 버전이 2022 서강대학교 프로그래밍 대회 문제로 출제되었다. 이벤트에서 9900점을 넘기 위한 최적 전략은 카드를 44.5장 사용한다. BOJ 26096
-
트리 꾸미기: 2022년 12월 16일 오전 6시 - 12월 26일 오전 6시
링크
자작 보드게임 동아리의 트리 만들기 보드게임 룰을 활용한 이벤트를 진행하였다. 크리스마스 트리와 자료구조의 트리가 이름이 같은 것에서 착안한 이벤트다.
또한 국제 프로그래밍 대회 ICPC와 IOI에 진출한 국내 참가자들을 응원하는 이벤트도 열린다. 대회 종료 시각까지 응원 메시지를 남길 수 있으며, 응원 메시지를 남기면 프로필 배경을 준다.
- ICPC 2021 Moscow: 2021년 10월 5일까지 링크
- IOI 2022 Indonesia: 2022년 8월 12일까지 링크
- ICPC 2022 Dhaka: 2022년 11월 10일까지 링크
- IOI 2023 Hungary: 2023년 9월 1일까지 링크
- ICPC 2023 Luxor: 2024년 4월 19일까지 링크
10. 솔브드 프로 플랜
솔브드 프로 플랜을 구독하면 여러 가지 기능을 사용할 수 있다. 본래 솔브드 서포터였으나, 2024년 6월 28일 명칭이 솔브드 프로 플랜으로 변경되었다.- 프로필에 솔브드 프로 플랜 마크 표시
- 광고 제거
-
고급 검색
단체 내에서 해결한 문제로 필터, 난이도 기여 표준편차로 필터 등의 추가 고급 검색 옵션을 사용할 수 있으며, 랜덤 검색 시 시드를 설정할 수 있다. -
북마크
최대 20개의 폴더에 문제를 북마크할 수 있음 -
난이도 스트릭 그래프
각 날짜에 해결한 최고 난이도를 표시 -
GIF 프로필 사진
프로필 사진을 GIF로 설정할 수 있다.
11. 아이템
아이템은 별조각, 코인, 알쏭달쏭 스트릭 그래프 염색 컬러칩, 스트릭 프리즈, 한별 이모티콘이 있다.오전 5:30분부터 오전 6:30분까진 운영을 안 하니 유의하자.
===# 아이템 설명 & 획득 경로 #===
-
별조각: 코인과 함께 기본 화폐 단위 중 하나이며, 코인과 환산하거나 프로필 배경과 교환할 수 있다.
획득 방법 - 문제 풀기
- 코인에서 별조각으로 환산 ( 환율이 매일 변동된다.)
- 이벤트
- solved.ac 최초 연동, 코인 최초 획득
-
코인: 개당 별조각 1400개~1600개의 가치를 가지며, 0.01개 단위로 쪼개어 사용할 수 있다. 일부 프로필 배경이나 아이템 구매에 필요하다.
획득 방법 - 별조각에서 코인으로 환산
- 스트릭 프리즈 (0.99코인): 미리 장착해 두면 어제 문제 푸는 걸 잊었더라도 스트릭이 깨지지 않는다. 단, 스트릭 길이가 늘어나지는 않는다. 인벤토리에서 장착해서 사용.
- 알쏭달쏭 스트릭 그래프 염색 컬러칩 (5개 0.15코인, 40개 1.00코인): 사용하면 스트릭 그래프 색상을 랜덤으로 바꾼다.
- 이모티콘 팩 (1개 0.20코인, 10개 1.50코인): 사용하면 기여 창에 사용할 수 있는 여러 가지 이모티콘 중 1개를 영구적으로 획득한다. 현재 세 종류의 이모티콘 팩에서 각각 15종류의 이모티콘을 획득할 수 있다.
- 한별 이모티콘 팩 1
- 한별이와 은하 이모티콘 팩 (수조 ver.) 1, 2
12. 사건사고
12.1. 2630번 문제 삭제
2022년 12월 14일 새벽 3시경 Baekjoon에서 2630번 문제가 실수로 삭제되는 사고가 있었다. Baekjoon에서는 해당 문제가 금방 복구되었지만, solved.ac까지 영향을 받으면서 문제가 커지게 된다. 당시에 solved.ac 데이터베이스는 Foreign Key를 사용하고 있었고 solved.ac에서 2630번 문제가 삭제되자 다음과 같은 상황이 발생했다.- 2630번 문제에 쌓인 난이도 투표 데이터가 전부 삭제되었다. 다른 것들은 전부 복구가 되었으나 난이도 투표는 백업 데이터가 없어서 복구되지 않았다.
- 2630번 문제의 제출 기록이 전부 삭제되었다. 당시에 Baekjoon에서 이 문제를 푼 사용자는 15563명이었고 이중 solved.ac를 연동한 모든 사용자들은 solved.ac에서 해결한 문제가 하나씩 줄었다.
- 2630번 문제가 속해 있던 Class 3의 전체 문제 수가 48개에서 47개로 줄었다. Class 3 Essential의 문제 수도 20개에서 19개로 줄었다. 하지만 Class 3+의 기준은 20문제 그대로여서 Class 3+를 달성할 수 없게 되었다.
[1]
알파 버전
2019년
6월 6일, 베타 버전
2019년
7월 13일
[기준]
2024년 3월 17일
[3]
Bronze V 이상만을 포함
[기준]
2024년 3월 17일
[기준]
2024년 3월 17일
[요구_티어]
Platinum V를 넘어가면 된다
[7]
문제들의 난이도 합의 경우 Ruby I 문제가 100개가 되지 않기 때문에 2024년 10월 1일 기준 사실상의 이론치는 2,893이다.
[8]
Bronze V 이상 기준
[9]
Bronze V 이상 기준
[10]
사이트 기준 (Bronze V를 상위 100%로 둠)
[11]
1문제 이상을 푼 인원은 144,510
[12]
Bronze V 문제를 17개 풀면 달성된다. (문제 레이팅 +17, 푼 문제 보너스 +14)
[13]
보통 50문제를 풀고(+39), CLASS 1(+25)를 얻고 해결한 문제들의 난이도 평균을 Bronze III(+150)로 맞추면 된다.
[14]
보통 100문제를 풀고(+69), CLASS 3(+100)를 얻고 상위 100문제 평균을 Silver IV(+700)로 맞추면 된다.
[15]
보통 400문제를 풀고(+151), CLASS 4(+150)를 얻고 상위 100문제 평균을 Gold III(+1,300)로 맞추면 된다.
[16]
보통 푼 문제 수 보너스(+175)와 기여 보너스(+25)를 전부 챙기고, CLASS 5(+200)를 얻고 상위 100문제 평균을 Platinum III(+1,800)로 맞추면 된다.
[17]
보통 푼 문제 수 보너스(+175)와 기여 보너스(+25)를 전부 챙기고, CLASS 8(+230)을 얻고 상위 100문제 평균을 Diamond III~IV(+2,270)로 맞추면 된다.
[18]
보통 푼 문제 수 보너스(+175)와 기여 보너스(+25)를 전부 챙기고, CLASS 10(+250)을 얻고 상위 100문제 평균을 Diamond I~Ruby V(+2,550)로 맞추면 된다.
[19]
번외 문제, 기타 모종의 사유로 인해 난이도를 매길 수 없는 문제들. Solved.ac에서도 이 난이도를 제안할 수 있으며 이 제안이 많아질 경우 운영자 측에서 이 난이도를 매기게 된다.
[20]
아직 레이팅되지 않은 경우.
[21]
0으로 나눌 수 없기 때문이다.
[22]
일반적인 방법으로 입력을 받으면 상당히 느리기 때문에 올바른 알고리즘을 구현해도 시간 초과를 받을 수 있다. 이 문제에서는 프로그래밍 문제에서 사용해야 하는 입출력 방법을 소개한다.
[23]
아레나 라운드에 한 번도 참가하지 않았거나,
이용 규칙 위반으로 아레나 레이팅이 강제로 0으로 설정된 경우
[24]
빼빼로 재료가 많아도 이게 없으면 못 만든다.