{"_id":"@bigsaigon333/solve.io","_rev":"1-ffd08cba3b6aab05d63fda9c13d61dbe","name":"@bigsaigon333/solve.io","dist-tags":{"latest":"0.0.4"},"versions":{"0.0.3":{"name":"@bigsaigon333/solve.io","version":"0.0.3","description":"알고리즘 문제 풀이를 위한 I/O Cli","main":"dist/index.cjs","bin":{"solve.io":"dist/index.cjs"},"scripts":{"build":"tsup","dev:watch":"tsx watch src/index.ts","dev":"tsx src/index.ts","eslint":"eslint --cache --fix .","preinstall":"npx only-allow pnpm","prepack":"pnpm build","prepare":"husky install","prettier":"prettier --write .","test":"jest","typecheck":"tsc --noEmit"},"repository":{"type":"git","url":"git+https://github.com/bigsaigon333/solve.io.git"},"keywords":["PS","algorithms","jest","boj"],"author":{"name":"Danny Kim","email":"likepeppermint@gmail.com","url":"https://bigsaigon333.github.io"},"license":"MIT","bugs":{"url":"https://github.com/bigsaigon333/solve.io/issues"},"homepage":"https://github.com/bigsaigon333/solve.io#readme","devDependencies":{"@tsconfig/node18":"^18.2.2","@tsconfig/recommended":"^1.0.3","@types/jest":"^29.5.7","@types/node":"^18.18.0","@typescript-eslint/eslint-plugin":"^6.9.1","@typescript-eslint/parser":"^6.9.1","all-contributors-cli":"^6.26.1","eslint":"^8.52.0","eslint-config-prettier":"^9.0.0","husky":"^8.0.3","jest":"^29.7.0","lint-staged":"^15.0.2","only-allow":"^1.2.1","prettier":"2.3.2","ts-jest":"^29.1.1","tsup":"^7.2.0","tsx":"^3.14.0","typescript":"^5.2.2"},"lint-staged":{"*.{js,ts}":["eslint --cache --fix","prettier --write"],"*":"prettier --ignore-unknown --write"},"dependencies":{"clipanion":"4.0.0-rc.2"},"engines":{"node":">=16.13.1"},"packageManager":"pnpm@8.6.0","_id":"@bigsaigon333/solve.io@0.0.3","gitHead":"91bd519c0aad52b016854ab21965c3f22f785c7d","_nodeVersion":"18.18.0","_npmVersion":"9.8.1","dist":{"integrity":"sha512-YiEbfwgcjbp2Tk764hTP4yJMrUkU5jag+n4tqRIEuzzVBXiDcYP9DJDTArvnPCtWxaOfG/oSOSmg+KqkdsAMBg==","shasum":"15bf249137a6ff3441b25898e4c122597a8f6fcc","tarball":"https://registry.npmjs.org/@bigsaigon333/solve.io/-/solve.io-0.0.3.tgz","fileCount":4,"unpackedSize":9841,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD11mZ+K4ovtwMx6vwhAcZcJSV0ycPzzOa7LZkWAq2F8gIgO2bOru5nxxyEpzw6REIXjMXbUStONKVB+0LUX0e+TxU="}]},"_npmUser":{"name":"bigsaigon333","email":"likepeppermint@gmail.com"},"directories":{},"maintainers":[{"name":"bigsaigon333","email":"likepeppermint@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/solve.io_0.0.3_1698761220990_0.623902733886498"},"_hasShrinkwrap":false},"0.0.4":{"name":"@bigsaigon333/solve.io","version":"0.0.4","description":"알고리즘 문제 풀이를 위한 I/O CLI","main":"dist/index.cjs","bin":{"solve.io":"dist/index.cjs"},"scripts":{"build":"tsup","dev:watch":"tsx watch src/index.ts","dev":"tsx src/index.ts","eslint":"eslint --cache --fix .","preinstall":"npx only-allow pnpm","prepack":"pnpm build","prepare":"husky install","prettier":"prettier --write .","test":"jest","typecheck":"tsc --noEmit"},"repository":{"type":"git","url":"git+https://github.com/bigsaigon333/solve.io.git"},"keywords":["PS","algorithms","jest","boj"],"author":{"name":"Danny Kim","email":"likepeppermint@gmail.com","url":"https://bigsaigon333.github.io"},"license":"MIT","bugs":{"url":"https://github.com/bigsaigon333/solve.io/issues"},"homepage":"https://github.com/bigsaigon333/solve.io#readme","devDependencies":{"@tsconfig/node18":"^18.2.2","@tsconfig/recommended":"^1.0.3","@types/jest":"^29.5.7","@types/node":"^18.18.0","@typescript-eslint/eslint-plugin":"^6.9.1","@typescript-eslint/parser":"^6.9.1","all-contributors-cli":"^6.26.1","eslint":"^8.52.0","eslint-config-prettier":"^9.0.0","husky":"^8.0.3","jest":"^29.7.0","lint-staged":"^15.0.2","only-allow":"^1.2.1","prettier":"2.3.2","ts-jest":"^29.1.1","tsup":"^7.2.0","tsx":"^3.14.0","typescript":"^5.2.2"},"lint-staged":{"*.{js,ts}":["eslint --cache --fix","prettier --write"],"*":"prettier --ignore-unknown --write"},"dependencies":{"clipanion":"4.0.0-rc.2"},"engines":{"node":">=16.13.1"},"packageManager":"pnpm@8.6.0","_id":"@bigsaigon333/solve.io@0.0.4","gitHead":"406f659a7074f177aad68473286c3428a22aca45","_nodeVersion":"18.18.0","_npmVersion":"9.8.1","dist":{"integrity":"sha512-PJ0ipGJX0banWpWkH4zDoaOB0YCCWPyRgCyuajOA+SAQAa9RUBVkXadWWmARon1WuUGRvgjgTKFmUDCvpx1suQ==","shasum":"2b84246328d927c3b40e87dd58750e2a57c71711","tarball":"https://registry.npmjs.org/@bigsaigon333/solve.io/-/solve.io-0.0.4.tgz","fileCount":4,"unpackedSize":9887,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFoLAiHZskTz2Q5RIobFy6Ao1FSeYkaiIcsdFB3A9xumAiB7akBaQB493S4o4h30HxYEZusEOzKiECYFpm3q+Vc0Gg=="}]},"_npmUser":{"name":"bigsaigon333","email":"likepeppermint@gmail.com"},"directories":{},"maintainers":[{"name":"bigsaigon333","email":"likepeppermint@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/solve.io_0.0.4_1698761545424_0.2219106836714797"},"_hasShrinkwrap":false}},"time":{"created":"2023-10-31T14:07:00.894Z","0.0.3":"2023-10-31T14:07:01.140Z","modified":"2023-10-31T14:12:25.825Z","0.0.4":"2023-10-31T14:12:25.635Z"},"maintainers":[{"name":"bigsaigon333","email":"likepeppermint@gmail.com"}],"description":"알고리즘 문제 풀이를 위한 I/O CLI","homepage":"https://github.com/bigsaigon333/solve.io#readme","keywords":["PS","algorithms","jest","boj"],"repository":{"type":"git","url":"git+https://github.com/bigsaigon333/solve.io.git"},"author":{"name":"Danny Kim","email":"likepeppermint@gmail.com","url":"https://bigsaigon333.github.io"},"bugs":{"url":"https://github.com/bigsaigon333/solve.io/issues"},"license":"MIT","readme":"# @bigsaigon333/solve&#46;io\n\n[![npm version](https://badge.fury.io/js/@bigsaigon333%2Fsolve.io.svg)](https://badge.fury.io/js/@bigsaigon333%2Fsolve.io)\n\n알고리즘 문제 풀이를 위한 I/O 검증 자동화 CLI\n\n## 1. Description\n\n[Baekjoon Online Judge](https://www.acmicpc.net/), [ALGOSPOT](https://www.algospot.com/) 등의 Problem Solving (이하 \"PS\") 온라인 저지에서는 문제의 입력이 Standard Input(이하 \"stdin\")으로 주어지고, 정답을 Standard Output(이하 \"stdout\")으로 출력해야 하는 경우가 많습니다.\n\n그에 반해, [Programmers](https://programmers.co.kr/), [LeetCode](https://leetcode.com/) 등은 문제의 입력을 함수의 인자로, 정답을 함수의 반환값으로 하고 있습니다.\n\nsolve&#46;io는 stdin/stdout를 기반으로 하는 PS 함수를 작성 후, 파일에 기재된 입력값을 넣어 실행한 결과값이 파일에 기재된 출력값과 일치하는지 검증하는 과정을 자동화하는 CLI입니다.\n\n<!--\nsolve&#46;io는 stdin/stdout를 기반으로 하는 PS를 함수를 기반으로 하는 PS로 바꿔주는 역할을 합니다.\n\n이를 통해 jest와 같은 테스트 프레임워크를 사용하여 PS를 할 수 있게 도와줍니다. -->\n\n## 2. Usage\n\n#### 1. javascript package 디렉토리로 이동하여 solve.io를 설치합니다\n\n```sh\n cd path/to/js-package\n npm install -D @bigsaigon333/solve.io\n```\n\n#### 2. package.json의 scripts에 solve.io 를 추가합니다\n\n```json\n  \"scripts\": {\n    \"solve.io\": \"solve.io\"\n  }\n```\n\n#### 3. 문제를 풀 디렉토리를 다음과 같이 설정합니다\n\n```sh\npath/to/problem-directory\n├── any_file_name_is_fine.js\n├── a.in\n├── a.out\n├── b.in\n└── b.out\n```\n\n- 디렉토리 내에 js파일은 단 하나여야 합니다. (파일명은 아무 파일명이나 상관없습니다.)\n- stdin에 해당하는 파일은 확장자를 `.in`으로, stdout에 해당하는 파일은 확장자를 `.out`으로 설정하여야 합니다. 이 때, `*.in` 과 `*.out` 쌍이 맞아야 합니다.\n  예시) `test1.in`, `test1.out`\n- `*.in` 과 `*.out`의 쌍이 맞지 않는 파일은 무시됩니다.\n  예시) `c.in` 만 존재하고 `c.out`은 없으면 `c.in`에 대한 테스트는 수행하지 않습니다.\n\n#### 4. solve.io 실행\n\n```sh\nnpm run solve.io path/to/problem-directory\n```\n\n##### ※ path/to/problem-directory 는 3가지 유형의 경로를 값으로 가질 수 있습니다\n\n1. 절대경로\n\n```sh\nnpm run solve.io /Users/bigsaigon333/github/path/to/problem-directory\n```\n\n2. package.json 을 기준으로 하는 상대경로\n\n```sh\nnpm run solve.io path/to/problem-directory\n```\n\n3. 현재 디렉토리를 기준으로 하는 상대경로\n\n```sh\ncd path/to/problem-directory\nnpm run solve.io .\n```\n\n## 3. 사용법 예시\n\n[BoJ 문제 1000번](https://www.acmicpc.net/problem/1000)\n\n### 3-1. 문제\n\n두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.\n\n**입력**\n첫째 줄에 A와 B가 주어진다. (0 < A, B < 10)\n\n**출력**\n첫째 줄에 A+B를 출력한다.\n\n**예제 입력**\n1 2\n\n**예제 출력**\n3\n\n### 3-2. solve&#46;io 를 이용한 풀이\n\n```js\n// 1000.js\nconst answer = require(\"fs\")\n  .readFileSync(0, \"utf-8\")\n  .split(\" \")\n  .map(Number)\n  .reduce((a, b) => a + b);\n\nconsole.log(answer);\n\n// a.in\n1 2\n\n// a.out\n3\n```\n\n#### 디렉토리 구조\n\n```sh\nsrc/1000\n├── 1000.js\n├── a.in\n└── a.out\n```\n\n#### solve.io 실행결과\n\n```sh\nnpm run solve.io src/1000\n\n> boj-with-js@0.1.0 solve.io\n> solve.io src/1000\n\ntest case 1) PASSED\n\n```\n\n## 4. Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n```\n\n```\n","readmeFilename":"README.md"}