백준 온라인 저지를 JavaScript로 효율적으로 풀기 위한 환경입니다. 테스트 → 제출 → 아카이브 까지 한 번에 관리할 수 있습니다.
저장소 포크
- 레포지토리 개인 깃헙에 포크 후에 클론 받아서 사용합니다
git clone <your-forked-repository-url>
cd study-algorithm-js
Node.js 14.0.0 이상 권장
study-algorithm-js/
├── boj/ # 현재 작업 중인 문제
│ ├── solution.js # 문제 해결 코드 (메타데이터 포함)
│ └── input.txt # 테스트 케이스
├── util/ # 유틸리티 함수들 (선택적 사용)
│ └── input.js # 백준 입력 처리 헬퍼 함수들
├── history/ # 해결한 문제 아카이브
│ └── YYMMDD/ # 날짜별 폴더
│ └── 문제번호.js # 해결한 문제들
├── scripts/ # 유틸리티 스크립트들
│ ├── test.js # 로컬 테스트 실행
│ └── submit.js # 제출용 코드 생성 + 아카이브
└── package.json # npm 스크립트 설정
boj/solution.js
파일에 다음 형식으로 작성:
방법 1: 기본 JavaScript 사용 (권장)
// 문제 번호: 1000
// 풀이 날짜: 250909
function solve(input) {
const lines = input.trim().split("\n");
const [a, b] = lines[0].split(" ").map(Number);
return a + b;
}
module.exports = { solve };
유틸리티 함수도 제공하니 사용하셔도 됩니다
const { splitByLine, parseNumbers } = require("../util/input.js");
// 문제 번호: 1000
// 풀이 날짜: 250909
function solve(input) {
const lines = splitByLine(input);
const [a, b] = parseNumbers(lines[0]);
return a + b;
}
module.exports = { solve };
boj/input.txt
파일에 테스트 케이스를 작성:
TEST #1
1 2
TEST #2
3 4
TEST #3
5 6
TEST #4
10 20
TEST #5
30 40
# 로컬 테스트 실행
npm run test
# 백준 제출용 코드 생성 + 아카이브
npm run submit
util/input.js
에서 제공하는 유용한 함수들:
readFileSync()
: 표준 입력 읽기splitByLine(input)
: 입력을 줄 단위로 분할parseNumbers(line)
: 한 줄에서 숫자들 파싱parseNumber(line)
: 한 줄에서 단일 숫자 파싱parseString(line)
: 한 줄에서 문자열 파싱
사용 예시:
const { splitByLine, parseNumbers } = require("../util/input.js");
function solve(input) {
const lines = splitByLine(input);
const [n, m] = parseNumbers(lines[0]);
const arr = parseNumbers(lines[1]);
// ...
}
💡 팁: 기본 JavaScript로도 충분히 문제를 풀 수 있지만, 복잡한 입력 처리가 필요한 경우 유틸리티 함수를 사용하면 더 편리합니다.
누구든 기여하실 수 있습니다!
문제가 있거나 제안사항이 있으시면 이슈를 생성해 주세요.
Happy Coding! 🚀