백준 예제 확인 자동화 프로그램

차승준·2023년 9월 25일
1

Projects

목록 보기
6/6
post-thumbnail

백준 풀 때,

예제 하나 하나 복사해서 코드 실행하고 붙여넣고, 예제 출력이랑 맞는지 확인하고..

정말 귀찮다.....

게으른 나에겐 항상 자동화가 최종 목표였다. 노션에 백준 문제 커밋 자동화부터 시작해서 두 번째로 만든 백준 예제 자동화이다.

BOJ-Auto-Test (Github Repo)

1) 코드의 작동원리

내가 test.py에 백준 1000번 문제를 풀면,

BOJ-Auto-Test의 main.py는

그 test.py를 기반으로 파이썬의 subprocess 모듈을 사용하여 모든 예제에 대해 코드 파일을 여러 번 실행하는 것이다.

하지만 문제 번호에 대한 예제도 직접 가져오기는 절 대 귀찮으니 웹 스크레이핑으로 가볍게 가져온다.

2) 사용방법

1. 환경 세팅

  • git clone

git clone https://github.com/chaseungjoon/BOJ-Auto-Test.git
  • 필요 패키지 다운로드

cd BOJ-Auto-Test
pip install -r requirements.txt
  • Python으로 푸는 경우

    문제를 푼 코드 파일의 주소를 line 7에 적는다. (❗이거 계속 수정하기 귀찮으니까 그 파일에 계속 푸는걸로)

    code_dir = ~/Desktop/Code/solve.py
  • C / C++ 로 푸는 경우 (컴파일 언어)

    문제를 푼 코드를 컴파일 할 executable 파일의 주소를 line7에 적는다 (컴파일은 나중에 터미널 script 함수에서 한꺼번에 할 예정)

    code_dir = ~/Desktop/Code/executeable

    line 9를 다음과 같이 고친다

    code_info = [code_dir]
  • script 함수 설정

터미널에서 쉽게 테스트할 수 있도록 script 함수를 설정해준다.

Linux / Mac (윈도우는 어떻게 설정하는지 아시는분 댓글로 부탁드립니다)

open ~/.zshrc
open ~/.bashrc

1) Python 으로 푼 경우

testpy() {
  python3 main.py의 주소 "$1"
}

2) C / C++ 로 푼 경우 (컴파일 후, main.py 실행)

testcpp() {
  g++ -o execuatble주소 푼코드파일주소 && python3 main.py의 주소 "$1"
}
  • script 함수 적용

source ~/.bashrc
source ~/.zshrc

2. 실행

1) 문제를 정해놓은 파일에 푼다.
2) 터미널에서 위에서 정한 script 함수를 문제 번호와 함께 실행한다

testpy 1025
testcpp 1025

2-1) script 함수를 설정하지 않은 경우

cd BOJ-Auto-Test
(c/c++ 이면 컴파일 먼저 하고)
python main.py 1025

3) 결과

  • 예제 다 맞은 경우

  • 예제와 답이 다를 경우 정답과 오답을 보여준다

  • 코드가 오류 날 경우 오류를 말해준다

profile
cau cse

0개의 댓글