[백준] NodeJs/Javascript 입력값 받는 방법

Seokhun Yoon·2022년 3월 24일
15

[코딩테스트] 백준

목록 보기
1/2
post-thumbnail

워낙 기초가 없어서 문법 위주로 공부를 했었는데, 하다보니 데이터 구조나 알고리즘에 대한 필요성이 많이 느껴졌다.
그리고 코딩테스트도 공부할겸 하루에 한 두시간 씩은 백준이나 프로그래머스에서 문제를 풀어볼 생각이다.

백준 코딩테스트 시작해보기

1. 언어 선택

지금까지 공부했던 자바스크립트를 선택하려고 했는데 언어에 자바스크립트가 없다..?
대신 node.js를 선택해주면 된다.

그리고 아마도 기본 값으로 C++이 선택되어 있을텐데, 매번 선택하는게 귀찮다면 아래처럼 기본 언어로 node.js를 설정해주자.
1) 언어설정 클릭

2) node.js를 드래그해서 최상단으로 옮기기

3) 맨 아래 저장버튼 누르기

2. 입력값 받기

자바스크립트로 지금까지 해오면서 출력만 해봤지 입력에 대해서는 항상 html의 input태그로만 받았었다. (그래서 뭔가 생소한 느낌적인 느낌..)
코딩테스트는 보통 아래처럼 제공되는 입력 값과 예상되는 출력 값을 제공한다.

이 값들은 텍스트 파일 형태로도 주어지는 것같다. 우리는 이 파일을 fs 모듈로 받아야 한다. (입력 파일의 경로는 "/dev/stdin")

그리고 입력의 형태는 매우 다양한데, 각 형태에 따라 코드를 정리해보면 아래와 같다.

// 1. 입력값이 한 개일 때(한 줄)
const fs = require('fs');
const input = fs.readFileSync("/dev/stdin").toString().trim();
// 2. 입력값이 여러 개일 때(한 줄에 공백으로 구분)
/* ex)
110 78 158
*/
const fs = require('fs');
const input = fs.readFileSync("/dev/stdin").toString().trim().split(" ");
// 3. 입력값이 여러 줄일 때
/* ex)
110
78
158
*/
const fs = require('fs');
const input = fs.readFileSync("/dev/stdin").toString().trim().split("\n");
// 4. 입력값이 첫 번째 줄에는 입력 값의 길이(n), 두 번째 줄에 공백으로 구분된 입력값이 주어질 때
/* ex)
3
110 78 158
*/
const fs = require('fs');
const [n, input] = fs.readFileSync("/dev/stdin").toString().trim().split("\n");
const inputArr = input.trim().split(" ")
// 5. 입력값이 첫 번째 줄에는 입력 값의 길이(n), n개의 줄에 걸쳐서 한 줄에 하나의 입력값이 주어질 때
/* ex)
3
110
78
158
*/
const fs = require('fs');
const [n, input] = fs.readFileSync("/dev/stdin").toString().trim().split("\n");

더 다양한 형태가 있을 수도 있지만, 위 방식을 잘 적용하면 불러오는건 어렵지 않을 듯 싶다.

profile
블록체인 개발자를 꿈꾸다

0개의 댓글