백준 티어 Platinum II 달성

백준 티어 플레 2 달성을 했습니다.
굳이 티어에 연연하고 뭐 일부러 점수를 올리고 그러고 싶지는 않았지만 Solved.ac의 시즌이 바뀌면서 기왕이면 시즌"2" 플레티넘"2" 배경이 예쁘지 않을까 싶어서 급하게 플레2에 도달했습니다.
세그먼트 트리라는 자료구조로 단 3일만에 20점 가까이 급하게 올려서 억지로 플레 2를 만들어서 솔직히 실감은 잘 나지 않습니다. 한동안은 플레 2로 계속 유지가 되지 않을까 싶습니다.
앞으로 남은 티어는 12개 (플레에 남은거 1개, 다이아 5개, 루비 5개?, 마스터??) 가 있는데, 점수 1점 올리는 일이 굉장히 어려워집니다. 세그먼트 트리는 굉장히 특수한 경우입니다.
플레 3 달성 달성 때는 다이아 어디선가 멈출거 같다고 했는데 아마 플레 2가 끝이지 않나 싶습니다. (곧 군입대이기도 하고...)
플레 3 때 750문제 푼 상태, 플레 4 때 1700문제 푼 상태, 플레 3은 2800문제를 넘게 푼 상태에서 달성했으니 아마 4000문제는 풀어야 티어가 바뀔 듯 합니다.
아직 부족하다고 생각되는 점 / 느낀 점을 하나 둘 적어보면서 앞으로의 방향을 잡아보자면...

1. 균형잡힌 컴공과같은 듯

자료구조가 꽤나 많이 오른게 맘에 듭니다. 기하학도 오르긴 했는데 사실상 미적분학에 가깝습니다.
스택 관련한 이것저것도 풀고 세그먼트 트리도 공부하고, 각종 그래프 탐색도 간단히는 할 수 있게 되었습니다.
이제 큐, 덱 이런 것들을 (뭔지는 알지만) 구현도 해보고 해야겠습니다.

2. Class 4

개인적으로 진짜 실력은 Class 라고 생각하는 편인데, 클래스 4까지는 임박했고, 3문제만 더 풀면 Class 4를 얻게 됩니다.
Class 2도 완전히 끝내는 것 (소위 금장) 까지 딱 두 문제 남았습니다.
문제를 아주 뻘로 풀지는 않았구나 싶습니다.

3. 파이썬이 너무 편하..긴 한데 이제 좀 느리다

파이썬이 참 이것저것 구현하긴 좋은데 이제 어려운 문제를 풀다보니 상당히 느리다는걸 느끼게 됩니다.
그렇다고 파이썬 말고 C++ 같은 걸 써보기에는 이미 파이썬에 절여진 바람에 정수 오버플로우 자체를 인지하지 못하기도 합니다. (1억 짜리 100만번 더해놓고 왜 값이 제대로 안뜨지? 같은...)
아마 정말 C++ 을 건들기 시작하면 다른 모든 것을 제치고 BigINT와 그에 따른 각종 템플릿을 만들어버리고 시작할 듯 합니다.


플레5 시점에서는 풀었던 문제 티어 Top100에서 가장 높은게 다이아4, 낮은게 실버3(!)이었고,
플레4 시점에서는 풀었던 문제 티어 Top100에서 가장 높은게 다이아4, 낮은게 골드4였습니다.
플레3 시점에서는 풀었던 문제 티어 Top100에서 가장 높은게 다이아2, 낮은게 골드3이었습니다.
이제는 가장 높은게 다이아2, 가장 낮은게 골드1이 되었습니다.
사실상 세그먼트 트리 기본 티어가 골드1이어서 생긴 일이기도 합니다.
가장 티어가 높은 100문제의 상태가 플레 3 시점에서 푼 문제는 이랬었는데, 플레 2 시점에서는 얼마나 달라졌는지 확인해보겠습니다.
플레 2 시점의 푼 문제 티어 Top100

1: Diamond II 21864 이산로그가 장난이냐?
2: Diamond III 27875 파이파이
3: Diamond IV 13729 1013 피보나치
4: Diamond IV 1196 잭 바우어
5: Diamond V 26036 제곱 ㄱㄱ
6: Diamond V 22678 Do It
7: Diamond V 16214 N과 M
8: Diamond V 15682 삼차 방정식 풀기 2
9: Diamond V 13970 Power towers
10: Diamond V 13926 gcd(n, k) = 1
11: Diamond V 13705 Ax+Bsin(x)=C
12: Diamond V 10854 Divisions
13: Diamond V 1557 제곱 ㄴㄴ
14: Platinum I 28123 삶, 우주, 그리고 모든 것에 관한 궁극적인 질문의 해답
15: Platinum I 18613 Decimal Expansion
16: Platinum I 13358 Exponial
17: Platinum I 12728 n제곱 계산
18: Platinum I 12925 Numbers (12728번 문제와 동일해서 레이팅 효력을 상실했습니다.)
18: Platinum I 7501 Key
19: Platinum I 5615 아파트 임대
20: Platinum I 4357 이산 로그
21: Platinum I 4149 큰 수 소인수분해
22: Platinum II 25974 거듭제곱의 합 1
23: Platinum II 19568 직사각형
24: Platinum II 11030 SUPER HATS
25: Platinum II 10909 Quaternion inverse
26: Platinum II 10438 페리 수열의 합
27: Platinum II 9206 나무 말고 꽃
28: Platinum II 2554 마지막 팩토리얼 수2
29: Platinum II 1492 합
30: Platinum III 19585 전설
31: Platinum III 9735 삼차 방정식 풀기
32: Platinum III 4862 마지막 자리
33: Platinum III 4463 피보나치 수 분석
34: Platinum IV 27299 헌내기 현철
35: Platinum IV 25821 Palindromic Primes
36: Platinum IV 22770 Ellipse Intersection
37: Platinum IV 9371 인코딩 좌표
38: Platinum IV 8407 Professor Laugh's Numbers
39: Platinum V 26601 가장 작은 수
40: Platinum V 25025 다항식 계산
41: Platinum V 24441 행운 수 판정
42: Platinum V 19577 수학은 재밌어
43: Platinum V 17985 Fence Bowling
44: Platinum V 15311 약 팔기
45: Platinum V 15222 nnnnn
46: Platinum V 14727 퍼즐 자르기
47: Platinum V 13977 이항 계수와 쿼리
48: Platinum V 13646 Estrela
49: Platinum V 13618 RSA
50: Platinum V 13430 합 구하기
51: Platinum V 12846 무서운 아르바이트
52: Platinum V 12041 Password Security (Small2)
53: Platinum V 11861 Maximal Area
54: Platinum V 11440 피보나치 수의 제곱의 합
55: Platinum V 11402 이항 계수 4
56: Platinum V 6549 히스토그램에서 가장 큰 직사각형 (1725번 문제와 동일해서 레이팅 효력을 상실했습니다.)
56: Platinum V 3955 캔디 분배
57: Platinum V 3783 세제곱근
58: Platinum V 2104 부분배열 고르기
59: Platinum V 1989 부분배열 고르기 2
60: Platinum V 1786 찾기
61: Platinum V 1725 히스토그램
62: Platinum V 1353 합과 곱
63: Platinum V 1306 달려라 홍준
64: Platinum V 1160 Random Number Generator
65: Gold I 27435 파도반 수열 2
66: Gold I 26653 XOR Hashing
67: Gold I 24892 이차 함수
68: Gold I 23832 서로소 그래프
69: Gold I 22445 Fast Division
70: Gold I 18949 Intersection of Parabolas
71: Gold I 18436 수열과 쿼리 37
72: Gold I 16134 조합 (Combination)
73: Gold I 15791 세진이의 미팅
74: Gold I 14438 수열과 쿼리 17
75: Gold I 14428 수열과 쿼리 16
76: Gold I 14289 본대 산책 3
77: Gold I 13532 악마의 수열
78: Gold I 13319 가짜 소수
79: Gold I 12977 원 위의 점
80: Gold I 12916 K-Path
81: Gold I 12850 본대 산책2
82: Gold I 12837 가계부 (Hard)
83: Gold I 11778 피보나치 수와 최대공약수
84: Gold I 11693 n^m의 약수의 합
85: Gold I 11689 GCD(n, k) = 1
86: Gold I 11525 Farey Sequence Length
87: Gold I 11505 구간 곱 구하기
88: Gold I 11401 이항 계수 3
89: Gold I 11238 Fibo
90: Gold I 10868 최솟값
91: Gold I 9343 랜덤 걷기
92: Gold I 8031 Weaker Goldbach
93: Gold I 6218 Balanced Lineup (6213번 문제와 동일해서 레이팅 효력을 상실했습니다.)
93: Gold I 6213 Balanced Lineup
94: Gold I 5676 음주 코딩
95: Gold I 4355 서로소
96: Gold I 2357 최솟값과 최댓값
97: Gold I 2268 수들의 합 7
98: Gold I 2086 피보나치 수의 합
99: Gold I 2042 구간 합 구하기
100: Gold I 1275 커피숍2