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