서론

백준 문제 풀이를 하다 보면 오늘은 어떤 알고리즘을 어떤 난이도로 풀어야지 하고 접근하게 되면 그 알고리즘 위주로 생각하게 되어 방해가 된다고 느낀 때가 있을 것이다.

혹은 반대로 오늘은 이 알고리즘을 공략해야겠다! 라는 식으로 접근하는 경우도 있을 것이다.

그러한 고민을 조금 덜어보고자 백준 문제를 연결해주는 간단한 프로그램을 만들었다.

Console에서 C++을 사용하여 만들었고, Chrome이 깔려 있음을 전제하에 동작하고, .csv(엑셀 파일)을 통해 데이터를 관리한다.

 

깃허브

  • 아래 깃허브 주소를 통해 전체 소스 코드를 확인할 수 있고, 코드는 필요 없다면 BaekjoonGenerator_Release.zip 파일만 받아서 압축 해제하여 사용하면 됩니다.

https://github.com/shimwoojin/BaekjoonGenerator

 

GitHub - shimwoojin/BaekjoonGenerator: 백준 문제 풀이를 도와주는 프로그램입니다. csv 파일에 저장된 데

백준 문제 풀이를 도와주는 프로그램입니다. csv 파일에 저장된 데이터로 백준 사이트로 연결해줍니다. chrome이 깔려 있어야 합니다. - shimwoojin/BaekjoonGenerator

github.com

 

시연 영상

 

만들며 느낀 점

사실 완성도가 그리 높지 않다는 것은 알고 있다. 단순히 내가 불편하다 느꼈던 부분에 대해서만 기능화 한것이기 때문에 그렇다. 문제 추가가 있으면 문제 삭제라던가 기능이 없는 부분도 많고 버그도 분명 있을 것이다. 단순히 내가 필요한 부분에 대해서 쓰임새가 있는 프로그램을 만들었다는 것에 의의를 두고 있다.

프로젝트를 시작하기 전에 단순히 ShellExecute라는 함수를 알게 되어 그걸 기반으로 시작하게 됐다. Chrome을 통해 특정 사이트에 연결해주는 것은 그 함수가 다 처리해준다고 하여도 어느 정도 구색을 갖추기 위해 인터페이스를 설계하고 상속을 하고 가상화를 하는 등의 노력은 했다. 인터넷 연결은 쉽게 처리하였다 쳐도 csv 파일을 직접 조작하는 것은 이번이 처음이였다. 사실 csv 파일이라는 것이 단순히 텍스트 파일이고 행, 열의 구분이 ','와 '\n'으로 되어 있다는 점만 좀 특별한 것이었지 다른 어려움은 없었다. csv 파일의 기본 인코딩 방식이 UTF-8 이었는데 이걸 wstring이랑 엮어서 한글도 지원하게 끔 쓰고 읽고 하는 기능은 조금 고생했다.

wfstream, wstringstream에 대해 좀 더 알게 되고 문자의 인코딩에 대해 조금 더 생각해본 계기였던 것 같다.

+ Recent posts