[백준] 더하기 사이클 #1110

6370 단어 1110백준1110

후기

문제 조건대로만 풀면 되는 문제.
그나마 아이디어로는 cache를 set 자료구조로 둬서 이미 존재했던 수인지를 판단하기.
이미 존재한 경우 루프를 빠져나오고 cache의 사이즈를 리턴하면 정답을 얻을 수 있다.

Node.js 풀이

const fs = require('fs');
const input = fs.readFileSync('/dev/stdin').toString().trim();

const solution = (N) => {
  const cache = new Set();
  cache.add(Number(N));
  const makeNewNumber = (n) => {
    if (n.length < 2) n = '0' + n;
    return `${n[1]}${(Number(n[0]) + Number(n[1])) % 10}`;
  };
  let newNumber = makeNewNumber(N);
  while (!cache.has(Number(newNumber))) {
    cache.add(Number(newNumber));
    newNumber = makeNewNumber(newNumber);
  }
  return cache.size;
};

console.log(solution(input));

좋은 웹페이지 즐겨찾기