Code Monkey home page Code Monkey logo

baekjoon_code_extractor's Introduction

BaekJoon-Code-Extractor

지금까지 제출한 백준 "맞았습니다" 코드를 추출하는 프로그램 입니다.
2021년을 기준으로 제대로 작동하는 백준 코드 추출기가 없어서 만들었습니다. image

작동 방식

  • ID와 로그인 쿠키값을 제공받고 그 ID에 해당하는 맞았습니다 페이지로 이동해 현재 페이지의 지금까지 맞은 코드를 전부 추출합니다. 추출후엔 시간복잡도가 낮은 순서대로 정렬하고 (오름차순), 시간이 같다면 메모리가 낮은 순으로 정렬합니다.

  • 그 후 정렬이 끝나면 맨 앞에 있는 것을 뽑고 파일로 저장합니다. 즉 시간복잡도, 메모리가 적게 든 코드를 좋은 코드라고 판단하고 우선 저장합니다. 뒤에 또 똑같은 문제가 나오면 그땐 다운로드 받지 않고 그냥 넘어갑니다.

  • 50점, 100점 등 점수가 있는 서브테스크 문제의 경우에도 나중에 제출한것이 점수가 더 높을것이라고 간주하고 상대적으로 더 앞쪽에 있을것이기 때문에 이런식으로 다운로드 했습니다.

  • 똑같은 문제가 또 나왔는데 언어가 다를경우엔 확장자를 달리하여 저장합니다.

    • 지원언어는 Python, C++, C 이며 다른언어는 txt 확장자로 저장됩니다. (이 부분은 추후 수정될 예정입니다.)
    • 원하는 언어가 없으시면 if~elif 문을 수정해서 직접 언어를 추가히시길 바랍니다.

Requirements

pip install -r requirements

사용전 위의 라이브러리를 설치 해주세요.

How to Use

python main.py

위 명령어로 프로그램을 실행하시면 백준 ID와 쿠키값 OnlineJudge 를 요구합니다. ID는 백준 ID를 입력하시면 되겠으며 쿠키값의 경우에는 우선 백준에 가서 로그인을 하신 후 F12를 눌러 크롬 개발자 콘솔을 엽니다.

image

그 후 Application 항목을 클릭한 후 왼쪽의 Cookies 탭을 눌러 백준 사이트(www.acmipc.net)를 누릅니다.

오른쪽에 OnlineJudge 값이 표시되며 해당 Value값을 (rr8avifo...) 복사하여 프로그램에 제공해주시면 됩니다.

소스코드는 downloads(다운로드 폴더) 에 저장합니다.

주의할 점

로그인 후 나오는 OnlineJudge 값을 알기만 하면 다른 컴퓨터에서도 똑같이 자신의 ID로 로그인을 한 것과 동일한 효과를 낼 수 있습니다.

OnlineJudge 값을 절대 모르는 타인에게 유출시키지 마세요.
본 프로그램의 경우 쿠키값을 추출하거나 다른곳에 유출시키지 않습니다.

baekjoon_code_extractor's People

Contributors

pgh268400 avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Forkers

dongyi-kim

baekjoon_code_extractor's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.