문제 링크
풀이
const [A, P] = require("fs").readFileSync("/dev/stdin").toString().trim().split(" ").map(v => +v);
const arr = [A];
while (true) {
const curNum = String(arr[arr.length-1]);
const nextNum = curNum.split("").reduce((acc, v) => acc + Number(v)**P, 0);
if (arr.includes(nextNum)) {
console.log(arr.indexOf(nextNum));
break;
}
arr.push(nextNum);
}
수열의 현재 항인 curNum으로 다음 항인 nextNum을 구하고, 이 nextNum이 이미 수열 내에 한 번이라도 등장했다면, 그 즉시 해당 수가 등장하기 전까지의 항의 개수를 출력하고, 아니라면 수열에 nextNum을 추가하고 계속 이 과정을 반복한다.
'연습장 > 백준(BOJ) 문제풀이' 카테고리의 다른 글
[백준 9656] 돌 게임 2 with Node.js (0) | 2021.05.07 |
---|---|
[백준 10799] 쇠막대기 with Python (0) | 2021.05.07 |
[백준 14889] 스타트와 링크 with Python (0) | 2021.05.06 |
[백준 3085] 사탕 게임 with Node.js (0) | 2021.05.04 |
[백준 1049] 기타줄 with Node.js (2) | 2021.05.02 |