본문 바로가기

Problem Solving/Baekjoon OJ

Diamond I 달성

  '다이아 2 달성' 글을 올린 지 대략 한 달 만에 다시 글을 쓰게 되었다. 시험 기간을 제외하면 2~3주 정도 걸린 것 같다. 내 solved.ac 히스토리를 보면 시험이 언제였는지 한눈에 찾을 수 있을 듯하다.

시험 기간 중에는 코딩을 거의 하지 않았지만 풀고 싶거나 배우고 싶은 문제와 알고리즘들을 따로 모아 두고 틈틈이 고민했다. 이 문제들을 시험이 끝나자마자 쭉 풀어버렸고, 그래서 레이팅이 급상승한 것 같다. (물론 아직 풀지 못한 문제들도 많다.)

 

  마지막으로 푼 문제는 제곱수의 합 2 (More Huge)으로, 출제자가 소멤 블로그에 쓴 글을 참고하여 해결했다. 세 달 전에 제곱수의 합 (More Huge)를 해결했을 때부터 풀고 싶었고 최근에 학교에서 (개인적으로) 가우스 정수를 공부하고 나서 풀 수 있겠다는 생각이 들어 도전해보았다. 글을 이해하는 것도 쉽지 않았는데 이를 코드로 옮기는 작업은... 정말로 힘들었다. 어제부터 구현을 시작해서 이틀 동안 붙잡고 있었는데 코딩을 하면서도 내가 이걸 풀 수 있는 건 맞는지 확신이 안 서서 계속 지쳤던 것 같다.

  Python 코드를 각 잡고 분석해본 것이 처음이어서 힘들었지만 덕분에 Python에 조금 더 친숙해졌고, 가우스 정수의 모듈러 연산을 구현하는 과정에서 연산자 오버로딩도 배울 수 있었다. (배우기만 했지 쓰지는 않았다) 결국 3800Byte 정도의 코드를 완성한 다음 떨리는 마음으로 제출을 했고, 너무 감사하게도 AC를 받았다. 루비 4를 해결함과 동시에 다 1이 되었다는 생각에 기분이 너무 좋았지만, 한편으로는 디버깅하기 편하도록 코드를 최대한 깔끔하게 짠 것이 조금 아까웠다. ㅎㅎ

 

  사실 아직도 얼떨떨하다. 나는 백준에서 97위를 할 만큼 잘하지도 않고 똑똑하지도 않다. 단지 코딩이, 알고리즘이 재밌어서 지금까지 공부해왔고 어느새 여기까지 온 것뿐이다. 앞으로 내가 루비를 찍을 수 있을지는 장담할 수 없지만, 욕심을 가지지 않고 해오던 공부를 계속 하고 싶다. 당장 euler tour trick, hld, alien trick, splay, link cut tree 같은 기본적인 것들도 모르니 말이다!ㅋㅋ

 

 

'Problem Solving > Baekjoon OJ' 카테고리의 다른 글

Class 9  (4) 2021.08.29
[BOJ 20188] 등산 마니아  (0) 2021.07.18
Diamond I 달성  (5) 2021.07.03
[BOJ 2867] 수열의 값  (2) 2021.06.12
Diamond II 달성  (4) 2021.05.30
Class 8 취득  (0) 2021.05.27