ํฐ์คํ ๋ฆฌ ๋ทฐ
๋ฐฑ์ค์์ JavaScript๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์ ๋ฅผ ํ๊ฒ ๋ ๊ฒฝ์ฐ ํ ์คํธ ์ผ์ด์ค ์ ๋ ฅ์ ๊ดํ ์ค์ผ๋ ํค ์ฝ๋๋ฅผ ์ ๊ณตํ๋ ํ๋ก๊ทธ๋๋จธ์ค๋ LeetCode ํ๋ซํผ ๋ฑ๊ณผ๋ ๋ค๋ฅด๊ฒ ์ฌ์ฉ์๊ฐ ์ง์ ํ์ผ์ ์ฝ์ด์ ํ ์คํธ ์ผ์ด์ค๋ฅผ ์ ๋ ฅ๋ฐ๋ ์ฌ์ ์ค์ ์ฝ๋๋ฅผ ์์ฑํด์ค์ผ ํ๋ค.
์ง๊ธ๊น์ง๋ ๋ฐฑ์ค์์ ๋ฌธ์ ์ง๋ฌธ๋ง ๊ฐ์ ธ์ ์ธ๋ถ ์ฝ๋ ์๋ํฐ์์ ์๊ณ ๋ฆฌ์ฆ ๋ก์ง์ ์์ฑํ๊ฑฐ๋ solution ํจ์ ๋ด๋ถ์์ ๋ฌธ์ ๋ง ํ์ด๋ ๋๋ ํ๋ก๊ทธ๋๋จธ์ค๋ฅผ ์ฌ์ฉํ์๋๋ฐ ๋ฐฑ์ค์์ ์กฐ๊ธ ๋ ๋ค์ํ ๋ฌธ์ ๋ฅผ ํ์ด๋ณด๊ณ ์ถ์ ์์ฌ์ nodeJS์ ์ ์ถ๋ ฅ ๊ด๋ฆฌ์ ๋ํด์ ๋ค์ ๋ฐฑ์ค ๋ฌธ์ ๋ฅผ ์์๋ก ํฌ์คํ ํ๊ณ ์ ํ๋ค.
๋ฌธ์
https://www.acmicpc.net/problem/4344
nodeJS ์ ์ถ๋ ฅ ๊ด๋ฆฌ
์ฐ์ ํ ์คํธ ์ผ์ด์ค๊ฐ ์๋ ํ์ผ์ ๋ถ์ด์ค๊ธฐ ์ํด์๋ fs ๋ด์ฅ ๋ชจ๋์ด ํ์ํ๋ค.
ํ์ผ ์ฒ๋ฆฌ์ ๊ด๋ จ๋ ์์ ์ ํ๋ ๋ชจ๋๋ก, ๋ณดํต FileSystem์ ์ค์ฌ์ fs ๋ชจ๋์ด๋ผ๊ณ ์ค์ฌ ๋ถ๋ฆ ๋๋ค.
fs ๋ด์ฅ ๋ชจ๋์ ํ์ฌ ํ์ผ์ ๋ถ๋ฌ์จ ๋ค readFileSync ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ํด๋น ํ์ผ ๋ด์ ๋ฐ์ดํฐ๋ฅผ ๋ฌธ์์ด๋ก ๋ฐํ ๋ฐ์ input ๋ณ์์ ์ ์ฅํด์ค๋ค.
// 5
// 5 50 50 70 80 100
// 7 100 95 90 80 70 60 50
// 3 70 90 80
// 9 100 99 98 97 96 95 94 93 91
const fs = require('fs');
let input = fs.readFileSync('./input.txt').toString();
input์ ๊ฐ์ ํ์ธํ๊ธฐ ์ํด ์ฝ์๋ก ์ฐ์ด๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ์ด ๋ฌธ์์ด ํํ๋ก ์ด๋ฃจ์ด์ง ํ ์คํธ ์ผ์ด์ค ๊ฐ์ด ๋์ค๋ ๊ฑธ ํ์ธํ ์ ์๋ค.
"5
5 50 50 70 80 100
7 100 95 90 80 70 60 50
3 70 90 80
9 100 99 98 97 96 95 94 93 91"
ํ์ง๋ง ์ด ๊ฐ์ผ๋ก ์๊ณ ๋ฆฌ์ฆ ๋ก์ง์ ๋ฐ๋ก ์ ์ฉํ ์ ์์ด ๋ค์๊ณผ ๊ฐ์ด split() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ์ค๋ฐ๊ฟ ๊ธฐ์ค์ผ๋ก ๊ตฌ๋ถ๋ ํ๋์ ๋ฐฐ์ด์ ์๋กญ๊ฒ ์์ฑํด ์ค๋ค.
// 5
// 5 50 50 70 80 100
// 7 100 95 90 80 70 60 50
// 3 70 90 80
// 9 100 99 98 97 96 95 94 93 91
const fs = require('fs');
let input = fs.readFileSync('./input.txt').toString();
input = input.split('\n');
['5',
'5 50 50 70 80 100',
'7 100 95 90 80 70 60 50',
'3 70 90 80',
'9 100 99 98 97 96 95 94 93 91']
ํ์ฌ ๋ชจ๋ ์ผ์ด์ค ํ ์ด์ค๋ค์ด ํ๋์ ๋ฐฐ์ด ๋ด์ ์ ์ฌ๋์ด ์๊ธฐ ๋๋ฌธ์ ์ด๋ฅผ ์๊ณ ๋ฆฌ์ฆ ๋ก์ง์ ํ๋์ฉ ์ ์ฉ์์ผ ์ฃผ๊ธฐ ์ํด์๋ ํ๋ฒ ๋ ์ ์ ํด์ฃผ๋ ์์ ์ด ํ์ํ๋ค.
์ฐ์ ์ฒซ๋ฒ์งธ ์์ input[0]์ธ 5๋ ํ ์คํธ ์ผ์ด์ค ์ซ์์ด๊ธฐ ๋๋ฌธ์ ๋ค์๊ณผ ๊ฐ์ด ๋ณ๋๋ก ๊ฐ์ ์์ฑํด์ค์ผ ๋๋ค.
// 5
// 5 50 50 70 80 100
// 7 100 95 90 80 70 60 50
// 3 70 90 80
// 9 100 99 98 97 96 95 94 93 91
const fs = require('fs');
let input = fs.readFileSync('./input.txt').toString();
input = input.split('\n');
const testCaseNum = input[0]
์ฌ๊ธฐ์ ์ฃผ์ํ ์ ์ด ํ์ฌ ์ ์ฅ๋์ด ์๋ input ๋ด์ ์ฒซ ๋ฒ์งธ ์์ ๊ฐ์ ๊ทธ๋๋ก ๊ฐ์ ธ์จ๋ค๋ฉด ์ซ์๊ฐ์ด ์๋ ๋ฌธ์๊ฐ์ ๊ฐ์ ธ์ต๋๋ค.
์ด๋ฅผ ์ซ์๊ฐ์ ๊ฐ์ ธ์ค๊ธฐ ์ํด์ ๋ค์๊ณผ ๊ฐ์ด ์ฝ๋๋ฅผ ์ถ๊ฐํ์๋ค.
// 5
// 5 50 50 70 80 100
// 7 100 95 90 80 70 60 50
// 3 70 90 80
// 9 100 99 98 97 96 95 94 93 91
const fs = require('fs');
let input = fs.readFileSync('./input.txt').toString();
input = input.split('\n');
const testCaseNum = +input[0]
//const testCaseNum = Number(input[0])
์ซ์๊ฐ์ผ๋ก ๋ฐ๊ฟ ๊ฒฝ์ฐ์๋ +๋จํญ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ ์๋ ์๊ณ Number() ๋ฐ parseInt()๋ฅผ ์ฌ์ฉํ ์๋ ์๋ค.
๋ค์์ผ๋ก ์ค์ ํ ์คํธ ์ผ์ด์ค์ ์ฐ์ผ ์์๋ค์ ๋ฌธ์ ์ ํ๋์ฉ ๋ฐ์๋ค์ผ ์ ์๋๋ก ๋ฐฐ์ด๋ก ๊ฐ ์์๋ฅผ ์ํํ๋ฉฐ ๋์ด์ฐ๊ธฐ ๊ธฐ์ค์ผ๋ก ์๋ก์ด ๋ฐฐ์ด๋ค์ ์์ฑํด์ค์ผ ๋๋ค.
(์ด๋๋ ํ ์คํธ ์ผ์ด์ค ์ซ์์ ๋ง์ฐฌ๊ฐ์ง๋ก ๊ฐ ์์๋ค์ ๋ชจ๋ ์ซ์๊ฐ์ผ๋ก ๋ฐ๊ฟ์ค์ผ ๋๋ค)
// 5
// 5 50 50 70 80 100
// 7 100 95 90 80 70 60 50
// 3 70 90 80
// 9 100 99 98 97 96 95 94 93 91
const fs = require('fs');
let input = fs.readFileSync('./input.txt').toString();
input = input.split('\n');
const testCaseNum = +input[0]
//const testCaseNum = Number(input[0])
for(let i = 1; i <= testCaseNum; ++i) {
const arr = input[i].split(' ').map((item) => +item);
break;
}
['5', '50', '50', '70', '80', '100'],
['7', '100', '95', '90', '80', '70', '60', '50'],
['3', '70', '90', '80'],
['9', '100', '99', '98', '97', '96', '95', '94', '93', '91']
์ map() ๋ฉ์๋๋ฅผ ์ด์ฉํ์ฌ ์ซ์๊ฐ์ผ๋ก ์์๋ฅผ ์ ์ ํ๋ ๊ณผ์ ์ ์๋ ์ฝ๋๋ฅผ ์ถ์ฝํ ๊ฒ์ด๋ค.
// 5
// 5 50 50 70 80 100
// 7 100 95 90 80 70 60 50
// 3 70 90 80
// 9 100 99 98 97 96 95 94 93 91
const fs = require('fs');
let input = fs.readFileSync('./input.txt').toString();
input = input.split('\n');
const testCaseNum = +input[0]
//const testCaseNum = Number(input[0])
for(let i = 1; i <= testCaseNum; ++i) {
const arr = input[i].split(' '); //.map(item => +item);
let newArr = [];
for(let i = 0; i < arr.length; ++i) {
newArr.push(+arr[i]);
}
break;
}
์ ์ฒด input ๊ด๋ฆฌ ์ฝ๋
// 5
// 5 50 50 70 80 100
// 7 100 95 90 80 70 60 50
// 3 70 90 80
// 9 100 99 98 97 96 95 94 93 91
const fs = require('fs');
let input = fs.readFileSync('./input.txt').toString();
input = input.split('\n');
const inputC = +input[0];
const inputTestCase = [];
for(let i = 1; i <= inputC; ++i) {
const arr = input[i].split(' ').map((item) => +item);
let newArr = [];
for(let i = 0; i < arr.length; ++i) {
newArr.push(arr[i])
}
const testCase = {
N: arr[0],
arr: newArr
};
inputTestCase.push(testCase);
break;
}
function solution(C, testCase) {
console.log('C :', C);
console.log('testCase :', testCase);
}
solution(inputC, inputTestCase);
C: 5
inputTestCase: [
{ N: 5, arr: [50, 50, 70, 80, 100] },
{ N: 7, arr: [100, 95, 90, 80, 70, 60, 50] },
(...)
]
์ต์ข ๊ฒฐ๊ณผ๊ฐ์ ํ์ธํ๊ธฐ ์ํด์ ์ต์ข ์ ์ผ๋ก console.log()๋ฅผ ํตํด ์ ๋ ฅ ๋ฐ์ ๊ฐ์ ์ถ๋ ฅํด์ค์ผ ๋๋ค.
'JS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋นํธ ์ฐ์ฐ์๋ฅผ ์ด์ฉํ์ฌ ์ด์ง์ ๊ฐํธํ๊ฒ ๊ตฌํ๊ธฐ (0) | 2021.09.04 |
---|---|
๋ณ์ UI (0) | 2021.08.28 |
rxjs tap operator๋ฅผ ํตํ side-effect (0) | 2021.08.03 |
axios Intercept requests_API ์์ฒญ ์ฒ๋ฆฌ ๋์ UI ์์ ๋ณด์ฌ ์ฃผ๊ธฐ (0) | 2021.08.03 |
formData์ ๊ฐ์ ์ฐธ์กฐ ๋ฐ ์ฌ์ฉ (0) | 2021.07.30 |