Competitive Programming/Codeforces

코딩일지: Codeforces-Supercharger (예제 테스트 자동화 도구)

Syphon 2021. 2. 24. 23:48

코드포스를 시작한 2019년부터 항상 언젠가 만들어야지... 하면서 미뤄오던 것이 있었다.

 

바로 코드포스 대회의 예제 입출력 테스트를 자동화해주는 도구이다.

 

대회 도중, 코드 로직을 수정할 때마다 코드포스 사이트의 입력을 복붙하는 과정이 꽤나 번거로웠고, 웹 크롤링을 통해 이 과정을 자동화해줄 수 있는 도구가 있다면 편리하겠다는 생각을 여러 번 했었다.

 

더불어 이 블로그에 대회 후기들을 꾸준히 남기면서, 후기 템플릿을 자동 생성해줄 스크립트 또한 있으면 좋겠다는 생각을 하게 되었다. 후기에는 각 대회 문항의 이름과 링크가 들어가야 하는데, 이를 일일이 복붙해서 링크 걸어주기가 꽤 귀찮기 때문이다.

 

얼마 전, 대회 후기를 작성하려던 내가 갑자기 위의 필요한 기능들을 구현해버렸다:

https://github.com/SyphonArch/codeforces-supercharger

 

SyphonArch/codeforces-supercharger

Tools for automating codeforces example pretests. Contribute to SyphonArch/codeforces-supercharger development by creating an account on GitHub.

github.com

대회 도중, ./checker.sh c.py와 같이 체커를 실행해주면 다음과 같은 출력을 확인할 수 있다:

 

상단은 내 코드의 출력 결과이고, DIFF RESULTS 아래는 정답과 내 출력의 차이이다.

 

최근 몇번의 대회는 이 체커를 쓰겠다고 깔짝거리느라 오히려 시간 손해를 봤는데, 점점 코드가 완성됨에 따라 앞으로는 Codeforces-Supercharger를 통해 더 효율적인 코포생활(?)을 할 수 있을 것 같다.

 

더 자세한 내용은 레포지토리의 README.md에 적혀있다.