백준 단계별 - while문

박상은·2021년 11월 2일
0

🤔 알고리즘 🤔

목록 보기
5/19

1. 10952번 - A+B-5

const readline = require("readline");
const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
});

let input = [];
let answer = "";

rl.on("line", line => {
  input.push(line.split(" "));

  if (input[input.length - 1][0] === "0" && input[input.length - 1][1] === "0") rl.close();
}).on("close", () => {
  input = input.slice(input.length - 1, 1);
  input.forEach(v => (answer += `${+v[0] + +v[1]}\n`));
  console.log(input);
  process.exit();
});

2. 10951번 - A+B-4

const readline = require("readline");
const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
});

let input = [];
let answer = "";

rl.on("line", line => {
  input.push(line.split(" "));
}).on("close", () => {
  input.forEach(v => (answer += `${+v[0] + +v[1]}\n`));
  console.log(answer);
  process.exit();
});3

3. 1110번 - 더하기 사이클

const readline = require("readline");
const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
});

let input = null;
let resultValue = null;
let count = 0;
const calculate = () => {
  count++;

  let front = null;
  let back = null;
  let inputArray = null;

  // 두 자리 숫자로 변경
  resultValue.split("").length >= 2 ? (inputArray = resultValue.split("")) : (inputArray = (0 + resultValue).split(""));

  // 각 자리 숫자 구하기
  front = inputArray[1];
  back = inputArray.reduce((prev, curr) => +prev + +curr) % 10;

  // 결괏값 구하기
  return front + back;
};

rl.on("line", line => {
  input = line;
  rl.close();
}).on("close", () => {
  resultValue = input;
  do {
    resultValue = calculate();

    if (input === "0") break;
  } while (+input !== +resultValue);

  console.log(count);
  process.exit();
});

0개의 댓글