백준(BOJ) 문제로 실제 코딩테스트 시험처럼 볼 수 있게 해주는 VS Code 확장입니다.
원하는 언어를 선택하고, 문제를 랜덤으로 뽑거나(난이도 범위 포함) 문제 번호를 직접 입력해 세션을 만들 수 있습니다. 세션이 시작되면 문제 본문(문제/입력/출력/예제)을 VS Code 안에서 보고, 예제 입력으로 로컬 실행 결과를 바로 확인할 수 있습니다.
세션 시작 흐름
- 풀이 언어 선택: Python, JavaScript, Kotlin, Java, C++, C
- 모드 선택
- 랜덤 문제: solved.ac 조건으로 문제 후보를 가져와 랜덤 추첨
- 문제 번호 직접 입력: 원하는 문제 번호를 입력해 세션 구성
- 문제 개수 입력 (최대 10)
- (랜덤 모드) 백준 ID 입력 후, 난이도 범위 선택 또는 직접 입력
- 시험 시간(분) 입력
랜덤 모드에서는 시험처럼 사용할 수 있도록 다음이 숨겨집니다.
- 문제 번호, 제목
- “원문 열기” 버튼 비활성화
참고
- 실행은 로컬에서 언어별 런타임/컴파일러를 호출해 수행합니다.
- 기본 타임아웃은 예제당 2000ms 입니다.
BOJ: 손코딩 모드 ON/OFF(boj-mock-test.toggleHandCoding)
손코딩 모드 ON 시(전역 설정 변경)
- 자동완성/추천/인라인 제안
- 트리거 문자 제안
- 파라미터 힌트
- 호버
- 라이트벌브
- (TS/JS) auto import 제안 손코딩 모드 OFF 시 원래대로 되돌립니다.
- VS Code에서 확장 설치
- 사이드바에
boj-mock-test뷰가 보입니다.- “모의테스트 시작” 버튼으로도 시작할 수 있습니다.
- 또는 명령 팔레트에서 실행
BOJ: Pick Random Problems
세션 중 사용
- 좌측에서 문제를 클릭하면 코드 파일이 열리고(에디터 오른쪽 컬럼), 문제 내용이 패널에 표시됩니다.
전체 예제 Run또는예제 Run으로 예제를 실행합니다.- 시험 종료 시 제출/결과 링크로 이동합니다.
- Python:
python3 main.py - JavaScript:
node main.js - Kotlin:
kotlinc Main.kt -include-runtime -d main.jar후java -jar main.jar - Java:
javac Main.java후java -cp <dir> Main - C++:
g++ main.cpp -std=c++17 -O2 ...후 실행 파일 실행 - C:
gcc main.c -std=c11 -O2 ...후 실행 파일 실행
세션이 시작되면 아래 경로에 코드가 저장됩니다.
- 워크스페이스가 열려 있으면:
<workspace>/.boj-mock-test/runs/<세션ID>/... - 워크스페이스가 없으면: 확장의 globalStorage 경로 아래
폴더 구성
- 수동 모드(문제 번호 입력):
<problemId>_<title>_<lang>/main.* - 랜덤 모드:
random_<index>_<random>/main.*
로컬 실행을 위해 사용하는 언어의 실행 환경이 설치되어 있어야 합니다.
- Python:
python3 - Node.js:
node - Kotlin:
kotlinc,java - Java:
javac,java - C++:
g++ - C:
gcc
추가로 네트워크가 필요합니다.
- solved.ac API 호출(랜덤 모드)
- 백준 문제 페이지 로딩/파싱
이 확장은 VS Code 설정을 직접 제공합니다(contributes.configuration)는 없지만, 손코딩 모드 토글 시 아래 전역 설정 값을 변경합니다.
editor.quickSuggestionseditor.suggestOnTriggerCharacterseditor.wordBasedSuggestionseditor.parameterHints.enablededitor.hover.enablededitor.lightbulb.enablededitor.acceptSuggestionOnEntereditor.tabCompletioneditor.inlineSuggest.enabledtypescript.suggest.autoImportsjavascript.suggest.autoImports
손코딩 모드를 OFF로 되돌리면 원래 값으로 복구합니다.
- 일부 문제는 백준 페이지 구조 변경/차단 등으로 파싱이 실패할 수 있습니다.
- 로컬에 컴파일러/런타임이 없으면 실행/컴파일 단계에서 실패합니다.
- 예제 시간 제한은 현재 고정(2000ms)이라, 오래 걸리는 문제는 로컬 실행이 시간 초과로 처리될 수 있습니다.
- 랜덤 모드에서는 의도적으로 원문 열기/문제 메타가 숨겨집니다.
boj-mock-test.pick3: 세션 시작boj-mock-test.toggleHandCoding: 손코딩 모드 토글
