Skip to content

HyeonIn/boj-js-study

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JavaScript로 백준 풀기 🚀

백준 온라인 저지를 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 스크립트 설정

📝 사용법

1. 문제 파일 생성

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 };

2. 테스트 케이스 작성

boj/input.txt 파일에 테스트 케이스를 작성:

TEST #1
1 2
TEST #2
3 4
TEST #3
5 6
TEST #4
10 20
TEST #5
30 40

3. 테스트 및 제출

# 로컬 테스트 실행
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! 🚀

About

백준 알고리즘 문제 해결을 위한 JavaScript 개발 환경

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •