티어: 루1

문제를 푸는 방법은 kwoncycle님의 블로그에 자세하게 설명되어있다. 거의 수학 논문 한 편을 읽는듯해서 시작할때는 이해조차 어려웠다. 2월 내내 문제를 이해하고, kwoncycle님의 예시 코드를 보며 따라 구현해보며 몸으로 부딪혔던 것 같다.
어떤 난이도든 상관없이 항상 js로만 격파해왔기 때문에, 이번 문제도 js로 풀어보려고 시도했다. 소수점 정밀도는 decimal.js를 사용해 해결하고, 파일 여러개의 기능을 합치고 나름대로 최적화도 해 어찌저찌 구현해냈다. 그러나 30000시간이라는 얼탱이 없는 시간은 이대로 진행하면 입대할 때 까지 문제는 풀리지 않는다는걸 의미했고, 결국 포기하고 python으로 다시 구현했다.
시련1
나는 살면서 컴퓨터를 가져본적이 없다. 항상 노트북만 사용하고, 지금도 맥북을 쓰고 있는 입장으로써 딱히 컴퓨터가 없음에 불만을 가지지는 않았다. 로컬에서 돌렸을 때 130시간을 찍은 python코드를 보기 전까지는 말이다. 덕분에 맥북은 1주일 내내 CPU 100%라는 절망적인 상태로 혹사당했고, 불쌍한 맥북을 위해 맥북 청소를 해주는걸로 고용노동부에 신고당하는걸 막았다. 그러나..

130시간동안 달린 맥북의 희생에도 불구하고 쓰라린 wa를 받았다.
시련2
wa를 받고 정말 멘탈이 나갈것같았다. 구현을 잘못했든 정밀도가 부족했든, ac를 받으려면 130시간동안 맥북을 다시한번 혹사시켜야 한다는 사실을 인정할 수 없었다. 하염없이 wa를 받은 답과 문제 지문만 번갈아 보던 도중, 2가지 사실을 깨달았다.
1. 소수점 222자리 까지를 '반올림'하여 출력해야한다.
2. 지문에서 알려준 지애상수의 첫 소수점 22자리와 wa를 받은 답을 비교해보면 10^-10 정도의 차이가 존재한다.
1번은 원래 답에서 반올림만 해주면 해결된다. 2번은 엄청 까다로운데.. 소수점 10번째 자리에서부터 오차가 있다는건 남은 212자리의 정확도를 보장할 수 없다는것이기 때문에 결국 구현 문제임이 확실해지는 순간이였다. 억겁의 130시간을 다시 보내고 싶지 않았던 나는 결국 돈의 힘으로 해결하기로 했다. Google Cloud에서 좋은 성능의 CPU를 달고있는 VM을 사용해 Ubuntu 환경에서 python과 간단한 라이브러리들을 설치하고 나면, 4~6시간이라는 아름다운 시간만에 코드를 돌려볼 수 있었다. 우선 내가 구현을 잘못한건지 알고싶어 kwoncycle님의 예시 코드를 돌려보았고..
시련3

그랬던것이다. 귀찮으셨을수도 있는데 정말 친절하게 바로 수정해주신 kwoncycle님에게 무한히 감사드리며 다시한번 원동력을 얻고 구현에 들어갔다. 더 확실하게 하기 위해 정밀도도 2배정도 더 높이고 이전값들과 출력값 대조도 하며 바쁘게 보냈다.
시련4
Google Cloud에서 사용하는 VM은 원래부터 그리 오래 사용하지 않을 계획이였기 때문에 브라우저에서 SSH를 통해 터미널에 접근하는 식으로 최대한 편의성을 높여 만들었었다. 이게 마지막 발목을 잡게 되는데, 일정 시간마다 임의로 발급된 SSH키를 만료하고 다시 발급하면서 접근 권한또한 없어졌다 다시 생겼고, 이 과정에서 연결된 웹 페이지가 꺼지는 바람에 3번이나 날려먹은것이다. 아침에 일어나 코드 돌리고, 점심에 확인하고 다시 돌리고, 저녁에 확인하고 또 다시 돌리는 과정을 계속 반복하면서 그냥 아마존 같은곳으로 넘어갈까 고민도 많이했다. 그리고 다음날 아침, 약 3주동안 산전수전 다 겪으며 끝내 마친 결과물이 바로..

기쁨의 ac였다.
'PS 풀이' 카테고리의 다른 글
| [백준 18789] 814 - 2 (11008점) (0) | 2025.07.03 |
|---|---|
| [백준 7659] Rubik 2^3 (0) | 2025.04.18 |
| [백준 13480] Hard Cuts (0) | 2025.01.30 |
| [백준 1784] 팰린드롬 인코딩 (0) | 2025.01.28 |
| [백준 17165] Gosu (0) | 2025.01.27 |