알고리즘

백준 자바스크립트(Node.js) 알고리즘 문제 입력 처리 정리

joooii 2025. 10. 10. 14:30

매번 문제 풀 때마다 헷갈리던 자바스크립트 입력 처리 방식을 정리해보고자 한다.

 

1. 한 줄 입력 (숫자 1개 입력)

const fs = require("fs");
const input = fs.readFileSync(0, "utf-8").trim();

const n = Number(input);

 

 

2. 한 줄 입력 (공백으로 구분된 숫자 여러 개)

const fs = require("fs");
const input = fs.readFileSync(0, "utf-8").trim().split(" ");

const [n, m] = input.map(Number);

 

 

3. 여러 줄 입력 (첫 줄은 숫자, 이후 배열)

// 입력값
5
1 2 3 4 5
const fs = require("fs");
const input = fs.readFileSync(0, "utf-8").trim().split("\n");

const n = Number(input[0]); 	// 첫 줄 
const arr = input[1].split(" ").map(Number);	// 두 번째 줄 -> 배열

 

 

4. 여러 줄 입력 (각 줄이 숫자 하나)

// 입력값
5
1
2
3
4
5
const fs = require("fs");
const input = fs.readFileSync(0, "utf-8").trim().split("\n").map(Number);

const n = input[0];
const arr = input.slice(1)  // 나머지 줄

 

 

5. 여러 줄 입력 (2차원 배열)

// 입력값
3
1 2 3
4 5 6
7 8 9
const fs = require("fs");
const input = fs.readFileSync(0, "utf-8").trim().split("\n");

const n = Number(input[0]);
const arr = input.slice(1).map(line => line.split(" ").map(Number));
// 결과값
3
[[1,2,3], [4,5,6], [7,8,9]]

 

 

6. 문자열 여러 줄

// 입력값
3
apple
banana
cherry
const fs = require("fs");
const input = fs.readFileSync(0, "utf-8").trim().split("\n");

const n = Number(input[0]);
const words = input.slice(1);  // 문자열 그대로

 

 


총 정리

 

  • fs.readFileSync(0, "utf-8") : 입력 전체 읽기
  • .trim() : 맨 앞뒤 공백 제거
  • .split("\n") : 줄 단위로 나누기
  • .split(" ") : 공백 단위로 나누기
  • .map(Number) : 숫자로 변환