Skip to content

Commit 670e7ed

Browse files
committed
구름, boj에서 js 입력 받는 코드 정리
1 parent e586fba commit 670e7ed

12 files changed

Lines changed: 132 additions & 73 deletions

File tree

src/grap3fruit/js/boj/input1_1.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
const solution = (N, data) => {
2+
console.log(N);
3+
console.log(data);
4+
};
5+
6+
let fs = require('fs');
7+
let input = fs.readFileSync('test').toString().split('\n');
8+
9+
const N = +input[0];
10+
const data = [];
11+
for (let i = 1; i < N + 1; i++) {
12+
// 위에서 N을 받을떄 input[0]이 빠져나갔기 때문에 1~N을 받아야한다.
13+
data.push(input[i].split(' ').map((el) => +el));
14+
}
15+
16+
solution(N, data);

src/grap3fruit/js/boj/input1_2.js

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
const solution = (N, info, data) => {
2+
console.log(N);
3+
const [X, Y] = info;
4+
console.log(X, Y);
5+
console.log(data);
6+
};
7+
8+
let fs = require('fs');
9+
let input = fs.readFileSync('test2').toString().split('\n');
10+
11+
const N = +input[0];
12+
const info = input[1].split(' ').map((el) => +el);
13+
const data = [];
14+
for (let i = 2; i < N + 2; i++) {
15+
// 위에서 N을 받을떄 input[0]이 빠져나갔기 때문에 1~N을 받아야한다.
16+
data.push(input[i].split(' ').map((el) => +el));
17+
}
18+
19+
solution(N, info, data);

src/grap3fruit/js/boj/test

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
3
2+
1 2 3
3+
2 3 4
4+
3 4 5

src/grap3fruit/js/boj/test2

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
3
2+
2 3
3+
1 2 3
4+
2 3 4
5+
3 4 5

src/grap3fruit/js/goorm/input1.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
const print = (N, data) => {
1+
const solution = (N, data) => {
22
console.log(N);
33
console.log(data);
44
};
@@ -28,6 +28,6 @@ rl.on('line', function (line) {
2828
rl.close();
2929
}
3030
}).on('close', function () {
31-
print(N, data);
31+
solution(N, data);
3232
process.exit();
3333
});

src/grap3fruit/js/goorm/input1.md

Whitespace-only changes.
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
const solution = (data) => {
2+
console.log(data);
3+
};
4+
5+
const readline = require('readline');
6+
const rl = readline.createInterface({
7+
input: process.stdin,
8+
output: process.stdout,
9+
});
10+
11+
let data = [];
12+
13+
rl.on('line', function (line) {
14+
data.push(line);
15+
// data = line.split('').map((el) => el);
16+
// data = line.split(' ').map((el) => el);
17+
// data = line.split('').map((el) => +el);
18+
19+
rl.close();
20+
}).on('close', function () {
21+
solution(data);
22+
process.exit();
23+
});
Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
const solution = (N, info, data) => {
22
console.log(N);
3-
console.log(info);
3+
const [X, Y] = info;
4+
console.log(X, Y);
45
console.log(data);
56
};
67

@@ -16,22 +17,26 @@ let count = 0;
1617
const data = [];
1718

1819
rl.on('line', function (line) {
19-
console.log(line);
2020
if (!N) {
21+
// N이 null이면
2122
N = +line;
22-
} else if (N && !info) {
23+
} else if (!info) {
24+
// N이 null이 아닌데, info가 null이면
2325
info = line.split(' ').map((el) => +el);
2426
} else {
25-
data.push(line.split(' ').map((el) => +el));
27+
// N과 info가 null이 아니면
28+
data.push(line);
2629
// data.push(line.split('').map((el) => +el));
2730
// data.push(line.split('').map((el) => el));
28-
// data.push(line);
29-
count += 1;
31+
// data.push(line.split(' ').map((el) => +el));
32+
count += 1; // data를 입력받으면 count를 증가시켜주고
3033
}
3134
if (count === N) {
35+
// count가 입력받아야하는 N일때 rl.close()를 호출해준다.
3236
rl.close();
3337
}
3438
}).on('close', function () {
35-
solution(N, info, data);
36-
process.exit();
39+
// rl.close()를 호출하면 이 콜백함수로 들어오고
40+
solution(N, info, data); // solution을 실행 한 후
41+
process.exit(); // 프로세스를 종료한다.
3742
});
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
const solution = (N, data) => {
2+
console.log(N);
3+
console.log(data);
4+
};
5+
6+
const readline = require('readline');
7+
const rl = readline.createInterface({
8+
input: process.stdin,
9+
output: process.stdout,
10+
});
11+
12+
let T = null;
13+
let N = null;
14+
let info = null;
15+
let countN = 0;
16+
let countT = 0;
17+
let data = [];
18+
19+
rl.on('line', function (line) {
20+
if (!T) {
21+
T = +line;
22+
} else if (!N) {
23+
N = +line;
24+
} else {
25+
data.push(line);
26+
// data.push(line.split('').map((el) => +el));
27+
// data.push(line.split('').map((el) => el));
28+
// data.push(line.split(' ').map((el) => +el));
29+
countN += 1; // data를 입력받으면 countN을 증가시켜주고
30+
}
31+
if (countN === N) {
32+
// N만큼 data를 잘 입력 받았으면
33+
solution(N, data); // solution을 호출하고
34+
N = null; // T, countT를 제외한 값들을 초기화해준다.
35+
info = null;
36+
countN = 0;
37+
data = [];
38+
39+
countT += 1; // 그리고 테스트 케이스 하나를 통과했으니 countT를 1 올려준다.
40+
}
41+
if (countT === T) {
42+
// 입력받은 T 만큼 테스트 케이스를 통과하게되면
43+
rl.close(); // rl.close()를 호출하고
44+
}
45+
}).on('close', function () {
46+
process.exit(); // 종료한다.
47+
});

src/grap3fruit/js/goorm/input2.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,10 @@ const readline = require('readline');
1515
if (!N) {
1616
N = +line;
1717
} else {
18-
// data.push(line); // 1 2 3 4 5 -> ['1 2 3 4 5']
18+
data.push(line); // 1 2 3 4 5 -> ['1 2 3 4 5']
1919
// data.push(line.split(' ').map((el) => +el)); // 1 2 3 4 5 -> [1,2,3,4,5]
2020
// data.push(line.split('').map((el) => el)); // 12345 -> ['1','2','3','4','5']
21-
data.push(line.split('').map((el) => +el)); // 12345 -> [1,2,3,4,5]
21+
// data.push(line.split('').map((el) => +el)); // 12345 -> [1,2,3,4,5]
2222
count += 1;
2323
}
2424
if (N === count) {

0 commit comments

Comments
 (0)