2024.11.20 - [Etc] - 백준 JavaScript 입력받기

 

백준 JavaScript 입력받기

코딩테스트 제출에서 언어항목 보면 파이썬, C, C++, java는 있어도javascript는 찾아볼 수 없었다.node.js를 이용하여 javascript를 입력받는 방법이 있었다. input.txt 파일을 만들고 js파일에 해당 코드를

ysh0129.tistory.com

이전 글에는 node.js로 자바스크립트를 입력 받는 구조를 알아봤다.

 

이번에는 예제 입력에 따라 입력하는 방법이다. 

 


1. input.txt 파일 안에 한 줄에 여러 값이 있는 경우

한 줄에 여러 값이 있는 경우

 

const input = require('fs').readFileSync(process.platform === "linux" ? "/dev/stdin" : "./input.txt").toString().trim().split(" ");
const a = parseInt(input[0]); // 77
const b = parseInt(input[1]); // 77
const c = parseInt(input[2]); // 7777

// input.txt
77 77 7777

split(" ")으로 77 77 7777 인 문자열을 공백을 기준으로 나눈 배열을 반환

parseInt로 input에 있는 문자값을 숫자값으로 변경

따라서 [77, 77, 7777]로 변환

a는 0번 인덱스, b는 1번 인덱스, c는 2번 인덱스인 각각 배열의 값을 가진다.

 


2. input.txt 파일 안에 여러 줄에 한개의 값이 있는 경우

1번 줄에 12, 2번 줄에 5 인 여러 줄에 한개의 값

const input = require('fs').readFileSync(process.platform === "linux" ? "/dev/stdin" : "./input.txt").toString().trim().split("\n");
const a = parseInt(input[0]); // 12
const b = parseInt(input[1]); // 5

// input.txt
12
5

1번 방법과 다르게 split("\n")으로 개행 기준으로 배열을 반환한다.

[12, 5]가 된 셈이다.

 


3. input.txt 파일 안에 여러 줄에 여러 값이 있는 경우

1번 줄에는 2개의 값 2번 줄에는 1개의 값

const input = require('fs').readFileSync(process.platform === "linux" ? "/dev/stdin" : "./input.txt").toString().trim().split(/\s+/);
const a = parseInt(input[0]);
const b = parseInt(input[1]);
const c = parseInt(input[2]);

// input.txt
14 30
20

split(/\s+/)이 정규식(/  /)을 이용한 모든 공백을 처리하고 연속된 공백을 무시한다.

[14, 30, 20]이 된 것이다.

 

* 요약

split(" ")는 띄어쓰기 공백 

split("\n")은 개행 공백

split(/\s+/) 연속되는 모든 공백

을 배열로 전환한다.

+ Recent posts