バックグラウンドJavaScript(node.js)の入力


Beakjoonアルゴリズムの問題(Node.js);


プログラマやコードの作成と同様に、入力に関心を持つ必要はなく、アルゴリズムに集中するだけで、標準的なアルゴリズムの問題は入力を考慮してコードを作成する必要があります.

入力


readline

  • JS内蔵モジュールは、Readabe Sterim(ex:process.stdin)からデータを行単位で読み出すインタフェースを提供し、Readlineモジュールにアクセスできる.
  • パラメータ行が入力値として指定されます.(String)
  • const readline = require("readline");
    readline.interfaceはreadline.createInterface()の方法で生成され、以下に示す.
    const readline = require("readline");
    
    const rl = readline.createInterface({
      input: process.stdin,
      output: process.stdout,
    });
    上記の方法の1行で入力を受信したり、複数行または所望の問題で提示された方法で静負荷したりすることができる.

    fs


  • ファイルシステムの略で、fs.readFile(filename, [options], callback)のようなファイル処理に関連するモジュールは、optionでファイル名のファイルを読み取り、コールバック伝達関数を呼び出す.(非同期)
  • fs.readFileSync(filename, [options])ビットとは異なり、主に試験事例ファイルを同期読み出して入力ファイルを直接読み出して処理するために使用される.
  • 2readlineよりも速い速度が期待できる.
  • const fs = require("fs);
    ファイルシステムを使用して読み込みます.
    const data = fs.readFileSync("/dev/stdin").toString().split(" ");
  • の上のコードは、入力値全体を最も基本的な形式で文字列として作成し、splitを使用して配列を作成します.
  • このときのfs.readFileSync("/dev/stdin")の値はBufferオブジェクトである.
  • は、通常、上記のように入力値を受信し、問題に応じて入力値を適宜変更して使用する.
  • fs example

    // 하나의 값을 입력 받았을 때
    const data = fs.readFileSync("/dev/stdin").toString().trim();
    
    // 공백을 포함한 한 줄의 값들을 받았을 때
    const data = fs.readFileSync("/dev/stdin").toString().trim().split(" ");
    
    // 여러 줄의 값들을 받았을 때
    const data = fs.readFileSync("/dev/stdin").toString().trim().split(`\n`);
    
    // 받아온 데이터를 String이 아닌, Number로 받고싶다면 뒤에 map(el => +el);를 추가한다.