白駿而文ノード.js

5141 ワード

10952号

const fs = require("fs");
const filePath = process.platform === "linux" ? "/dev/stdin" : "예제.txt";
const input = fs.readFileSync(filePath).toString().split("\n");
let N = 0;
while (N < input.length - 1) {
  let A = Number(input[N].split(" ")[0]);
  let B = Number(input[N].split(" ")[1]);
  N += 1;
  console.log(A + B);
}
最初はそう書いていましたが間違っていました最後の行0の条件を無視したためかもしれません.出力に0がないので、わざと最後の行の前に出力します.ははは
const fs = require("fs");
const filePath = process.platform === "linux" ? "/dev/stdin" : "예제.txt";
const input = fs.readFileSync(filePath).toString().split("\n");
let N = 0;

while (input[N].split(" ")[0] != 0 && input[N].split(" ")[1] != 0) {
  let A = Number(input[N].split(" ")[0]);
  let B = Number(input[N].split(" ")[1]);

  console.log(A + B);
  N += 1;
}
while条件は入力値を0以外に設定します.

10951号

  • で初めて作成されたコードです.rnはなぜこう書くのですか?vscodeでコンソールで彼を撮ったとき、rはすべて出てきて、このように書きました.でもnだけでもいいので、そうする必要はありません.
  • そして問題は明らかに私のvscodeで良いです...いずれも出力角がいいですが、間違っています.本当に気が狂うと思った正しいコードを見つけて、私のvscに移動すると、いつも最後の出力しか出てこないのでおかしいですが...
  • //오답 코드
    const fs = require("fs");
    const filePath = process.platform === "linux" ? "/dev/stdin" : "예제.txt";
    const input = fs.readFileSync(filePath).toString();
    
    const cal = () => {
      const line = input.split("\r\n");
      let counts = 0;
      while (counts < line.length) {
        console.log(
          Number(line[counts].toString().split(" ")[0]) +
            Number(line[counts].toString().split(" ")[1])
        );
        counts++;
      }
    };
    cal();
    正しいコードを私のvscに打ったとき

    私のエラーコードをvscに打つと

    異常点1が最後の行の7に出力されるのは正常で、本当におかしいです...
    異常点2正解コードのwhile条件異常.
    let input = require('fs').readFileSync('/dev/stdin').toString().split('\n');
    
    var i = 0;
    while(i < input.length - 1) {
        let a = Number(input[i].split(' ')[0])
        let b = Number(input[i].split(' ')[1])
        console.log(a + b)   
        i++
    }
    0で始まるとwhile(iだからいろいろ探して、答えを見つけました.
    https://www.acmicpc.net/board/view/59328
    テストケースの最後の部分にまたnが追加されたようです.
    これらの問題はb.trim()です.split('n')でlength-1を使わずに
    テストケースに最後のnが追加されたのかもしれません...ははは
    ということで私もトリミング()、空白を外して解決しました!
    正解.
    const { counts, count } = require("console");
    const fs = require("fs");
    const filePath = process.platform === "linux" ? "/dev/stdin" : "예제.txt";
    const input = fs.readFileSync(filePath).toString().trim();
    
    const cal = () => {
     const 줄마다 = input.split("\n");
     let counts = 0;
     while (counts < 줄마다.length) {
       console.log(
         Number(줄마다[counts].toString().split(" ")[0]) +
           Number(줄마다[counts].toString().split(" ")[1])
       );
       counts++;
     }
    };
    cal();

    1110番


    知らない概念


    =基本資料型に対して深い複製がある.


    これまで=浅い放射線しか発生しなかった.そうではありません.デフォルトのデータ型(数値、文字列、boolean)は深度レプリケーションであり、オブジェクト(配列を含む)は浅いレプリケーションです.
    https://wanna-b.tistory.com/18
    それを知らなかったので、Nをグローバルに定義しなかった.
    let N = input;
    こう書けば2人で価格を共有できると思ったので、しませんでした.
    大丈夫です.全体に書いてください.

    +は、数値で置換された単項演算子です。



    https://developer.mozilla.org/ko/docs/Web/JavaScript/Guide/Expressions_and_Operators

    正しいコード


    私はずっと関数で分離したいと思っていますが、そうでなくても大丈夫です.
    const fs = require("fs");
    const filePath = process.platform === "linux" ? "/dev/stdin" : "예제.txt";
    // const input = fs.readFileSync(filePath).toString().split("");
    const input = fs.readFileSync(filePath).toString().trim();
    
    let addN = 0;
    let count = 0;
    let N = +input;
    let isNotSame = true;
    while (isNotSame) {
      addN = Math.floor(N / 10) + (N % 10);
      N = (N % 10) * 10 + (addN % 10);
      count++;
      if (N == input) {
        console.log(count);
        isNotSame = false;
      }
    }
    
    ソース:https://velog.io/@wandakim/boj-node.js-%EB%B0%B1%EC%A4%80-1110%EB%B2%88-%EB%8D%94%ED%95%98%EA%B8%B0-%EC%82%AC%EC%9D%B4%ED%81%B4