백준 단계별 - 함수

박상은·2021년 11월 2일
0

🤔 알고리즘 🤔

목록 보기
7/19

1. 15596번 - 정수 N개의 합

JavaScript로 풀 수 없는 문제

2. 4673번 - 셀프 넘버

const array = Array(9999)
  .fill()
  .map((v, i) => i + 1);

for (let i = 1; i <= 10000; i++) {
  // 10이하 처리
  if (i < 10) {
    array[i * 2 - 1] = false;
  }

  // 10이상 처리
  if (i >= 10) {
    const sum =
      String(i)
        .split("")
        .reduce((prev, curr) => prev + +curr, 0) + i;

    array[sum - 1] = false;
  }
}

let answer = "";
array.forEach(v => (v ? (answer += `${v}\n`) : null));

console.log(answer);

3. 1065번 - 한수

/**
 * 1 ~ 99는 모두 등차수열에 만족
 * 100 ~ 999인 경우 ( 이하 각 자릿수를 x, y, z라고 부름 )
 * (x - y === y - z)에 만족하면 등차수열임... 즉, 공차가 같으면 등차수열
 */

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

let input = null;

rl.on("line", line => {
  input = +line;

  rl.close();
}).on("close", () => {
  let count = 0;

  if (input < 100) return console.log(input);

  // 1 ~ 99를 제외하고 생성
  const array = Array(input - 99)
    .fill()
    .map((v, i) => String(i + 100));

  array.forEach(value => {
    const tempArray = value.split("");
    if (+tempArray[0] - +tempArray[1] === +tempArray[1] - +tempArray[2]) count++;
  });

  console.log(99 + count);

  process.exit();
});

0개의 댓글