지금까지 제출한 백준 "맞았습니다" 코드를 추출하는 프로그램 입니다.
2021년을 기준으로 제대로 작동하는 백준 코드 추출기가 없어서 만들었습니다.
-
ID와 로그인 쿠키값을 제공받고 그 ID에 해당하는 맞았습니다 페이지로 이동해 현재 페이지의 지금까지 맞은 코드를 전부 추출합니다. 추출후엔 시간복잡도가 낮은 순서대로 정렬하고 (오름차순), 시간이 같다면 메모리가 낮은 순으로 정렬합니다.
-
그 후 정렬이 끝나면 맨 앞에 있는 것을 뽑고 파일로 저장합니다. 즉 시간복잡도, 메모리가 적게 든 코드를 좋은 코드라고 판단하고 우선 저장합니다. 뒤에 또 똑같은 문제가 나오면 그땐 다운로드 받지 않고 그냥 넘어갑니다.
-
50점, 100점 등 점수가 있는 서브테스크 문제의 경우에도 나중에 제출한것이 점수가 더 높을것이라고 간주하고 상대적으로 더 앞쪽에 있을것이기 때문에 이런식으로 다운로드 했습니다.
-
똑같은 문제가 또 나왔는데 언어가 다를경우엔 확장자를 달리하여 저장합니다.
- 지원언어는 Python, C++, C 이며 다른언어는 txt 확장자로 저장됩니다. (이 부분은 추후 수정될 예정입니다.)
- 원하는 언어가 없으시면 if~elif 문을 수정해서 직접 언어를 추가히시길 바랍니다.
pip install -r requirements
사용전 위의 라이브러리를 설치 해주세요.
python main.py
위 명령어로 프로그램을 실행하시면 백준 ID와 쿠키값 OnlineJudge
를 요구합니다.
ID는 백준 ID를 입력하시면 되겠으며 쿠키값의 경우에는 우선 백준에 가서 로그인을 하신 후 F12
를 눌러 크롬 개발자 콘솔을 엽니다.
그 후 Application 항목을 클릭한 후 왼쪽의 Cookies 탭을 눌러 백준 사이트(www.acmipc.net)를 누릅니다.
오른쪽에 OnlineJudge 값이 표시되며 해당 Value값을 (rr8avifo...) 복사하여 프로그램에 제공해주시면 됩니다.
소스코드는 downloads(다운로드 폴더) 에 저장합니다.
로그인 후 나오는 OnlineJudge 값을 알기만 하면 다른 컴퓨터에서도 똑같이 자신의 ID로 로그인을 한 것과 동일한 효과를 낼 수 있습니다.
OnlineJudge 값을 절대 모르는 타인에게 유출시키지 마세요.
본 프로그램의 경우 쿠키값을 추출하거나 다른곳에 유출시키지 않습니다.