개발바닥
백준 Node Js 입력 방법
모남(monam2)
2023. 7. 26. 21:28
파이썬 쓸때는 몰랐다... 백준이 얼마나 소중한지...
물론 프로그래머스가 있고, UI나 환경 같은게 더 좋긴 하지만
길게 봤을 때 코딩테스트나 알고리즘을 공부하면서 백준을 빼놓을 순 없겠더라
백준은 node js 언어로 선택 후 입력을 따로 처리해야하기에 굉장히 까다로운데
문제 풀때마다 좀 편하게 찾고자 미리 정리해둬야겠다.
입력 방법이 크게 두 가지가 있는 걸로 알고있는데, 그냥 깔끔하게 쓸수 있는게 최고인것 같.. 크흠
1. 하나의 값을 입력받을 때
const fs = require('fs');
const input = fs.readFileSync("/dev/stdin").toString().trim();
2. 공백으로 구분된 한 줄의 값들을 입력받을 때
const fs = require('fs');
const input = fs.readFileSync("/dev/stdin").toString().trim().split(" ");
3. 여러 줄의 값들을 입력받을 때
const fs = require('fs');
const input = fs.readFileSync("/dev/stdin").toString().trim().split("\n");
4. 첫 번째 줄에 자연수 n을 입력받고, 그 다음줄에 공백으로 구분된 n개의 값들을 입력받을 때
const fs = require('fs');
const [n, ...arr] = fs.readFileSync("/dev/stdin").toString().trim().split(/\s/);
5. 첫 번째 줄에 자연수 n을 입력받고, 그 다음줄부터 n개의 줄에 걸쳐 한 줄에 하나의 값을 입력받을 때
const fs = require('fs');
const [n, ...arr] = fs.readFileSync("/dev/stdin").toString().trim().split("\n");
6. 하나의 값 또는 공백으로 구분된 여러 값들을 여러 줄에 걸쳐 뒤죽박죽 섞여서 입력받을 때
ex) n 입력 - 공백으로 구분된 n개의 값 입력 - m 입력 - 여러 줄에 걸쳐 m개의 값 입력
const fs = require('fs');
const input = fs.readFileSync("/dev/stdin").toString().trim().split(/\s/);
const n = input[0];
const n_arr = input.slice(1, n+1);
const [m, ...m_arr] = input.slice(n+1);
출처 : https://judahhh.tistory.com/39
크게 이 정도인듯. 입력값의 타입은 그때그때 변환하거나 맵 함수를 사용하면 될듯 하다.
입력만 받을 수 있으면 어떻게든 할 수 있을 것이다.
끗