Algorithm/๋ฐฑ์ค€(BOJ)

[Node.js/JavaScript] ๋ฐฑ์ค€ Node.js๋กœ ์ž…์ถœ๋ ฅ ํ•˜๋Š” ๋ฐฉ๋ฒ•

_์„ฑํ˜ธ_ 2022. 4. 10. 04:43
728x90
๋ฐ˜์‘ํ˜•

์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ๋ฅผ ์ฒ˜์Œ ํ’€์–ด๋ณด๊ธฐ ์œ„ํ•ด ๋ฐฑ์ค€ ์‚ฌ์ดํŠธ๋ฅผ ์„ ํƒํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๋ฐฑ์ค€์—์„œ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ๋ฅผ ํ’€๊ธฐ ์œ„ํ•ด์„œ๋Š”  Node.js๋ฅผ ์„ ํƒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ฒ˜์Œ ๋ฐฑ์ค€ ์‚ฌ์ดํŠธ์—์„œ ํ’€์–ด๋ณด์‹ ๋ถ„๋“ค์€ ์•„์‹œ๊ฒ ์ง€๋งŒ ํ•จ์ˆ˜๋งŒ ๋‹ฌ๋ž‘ ์ ์–ด๋†“๊ณ  ์ œ์ถœํ•˜๋ฉด ๋Ÿฐํƒ€์ž„ ์˜ค๋ฅ˜๊ฐ€ ๋œน๋‹ˆ๋‹ค.

๋ฐฑ์ค€ ์‚ฌ์ดํŠธ์—์„œ๋Š” ๋‹ค๋ฅธ ์‚ฌ์ดํŠธ๋“ค๊ณผ ๋‹ฌ๋ฆฌ ์ž…๋ ฅ๊ณผ ์ถœ๋ ฅ์„ ์ง์ ‘ํ•ด์ฃผ์–ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๋ฐฑ์ค€์—์„œ Node.js๋กœ ์ž…๋ ฅ์„ ๋ฐ›๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ readline ๋ชจ๋“ˆ๊ณผ fs ๋ชจ๋“ˆ ๋‘๊ฐ€์ง€๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ €๋Š” ๋ฐฑ์ค€ ์‚ฌ์ดํŠธ ๋„์›€๋ง์— ์žˆ๋Š” fs ๋ชจ๋“ˆ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค. (readline ๋ชจ๋“ˆ๋ณด๋‹ค ์ฒ˜๋ฆฌ์†๋„๊ฐ€ ๋น ๋ฅด๋‹ค.)

// fs = ํŒŒ์ผ ์ž…์ถœ๋ ฅ ์ฒ˜๋ฆฌ, 'dev/stdin'ํŒŒ์ผ์—์„œ ์ž…์ถœ๋ ฅ์„ ๊ฐ€์ ธ์™€์„œ ๊ณต๋ฐฑ์„ ๊ธฐ์ค€์œผ๋กœ ์ž˜๋ผ์ค€๋‹ค.
var fs = require('fs');
var input = fs.readFileSync('/dev/stdin').toString().split(' ');
var a = parseInt(input[0]);
var b = parseInt(input[1]);

// ๊ตฌํ˜„๋ถ€
console.log(a + b);

 

์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์ œ์ถœํ•˜๊ธฐ ์ „์— VS Code์—์„œ ๊ฒฐ๊ณผ๋ฅผ ๋จผ์ € ํ™•์ธํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์˜ˆ์ œ.txt ํŒŒ์ผ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

 

๋ฐฑ์ค€ ๋ฌธ์ œ์— ๋‚˜์™€ ์žˆ๋Š” ์˜ˆ์ œ ์ž…๋ ฅ์„ .txt ํŒŒ์ผ์— ์ ์€ ํ›„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

 

์œ„ ์ฝ”๋“œ์—์„œ '/dev/stdin' ๋ถ€๋ถ„์„ '์˜ˆ์ œ.txt'๋กœ ๋ฐ”๊ฟ”์ฃผ๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

var input = fs.readFileSync('์˜ˆ์ œtxt.').toString().split(' ');

 

๋˜ํ•œ ์ด ์ฝ”๋“œ๋ฅผ ์ž˜ ์‚ฌ์šฉํ•˜๋ฉด ๋‹ค์–‘ํ•œ ์ž…๋ ฅ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ex) ๋‘ ์ค„ ์ž…๋ ฅ

var input = fs.readFileSync('์˜ˆ์ œ.txt').toString().split('\n');

 

ํ„ฐ๋ฏธ๋„(ctrl + `)์„ ์—ด์–ด์„œ npm install์„ ํ†ตํ•ด fs ๋ชจ๋“ˆ์„ ์„ค์น˜ํ•ด ์ค๋‹ˆ๋‹ค. ์ด๋กœ์จ Node.js ํ™˜๊ฒฝ์—์„œ ํŒŒ์ผ์‹œ์Šคํ…œ์— ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•ด ์ง‘๋‹ˆ๋‹ค.

$ npm install fs

 

fs ๋ชจ๋“ˆ์„ ์„ค์น˜ํ•œ ํ›„ ํ„ฐ๋ฏธ๋„์— node ํŒŒ์ผ๋ช….js๋ฅผ ์ž…๋ ฅํ•ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ฒฐ๊ณผ๊ฐ€ ์ œ๋Œ€๋กœ ์ถœ๋ ฅ๋œ๊ฑธ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

 

๊ฒฐ๊ณผ๊ฐ€ ์ œ๋Œ€๋กœ ์ถœ๋ ฅ๋˜์–ด ๋ฐฑ์ค€ ์‚ฌ์ดํŠธ์— ์ œ์ถœํ•  ๋•Œ๋Š” ๋‹ค์‹œ '/dev/stdin'์œผ๋กœ ๋ฐ”๊ฟ”์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค.

var input = fs.readFileSync('/dev/stdin').toString().split(' ');