0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 0, 1, 1, 1, 2, 1, 3, 1, 4, …순으로 숫자를 말하면 된다.0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, …순으로 숫자를 말하면 된다.진법 n, 미리 구할 숫자의 갯수 t, 게임에 참가하는 인원 m, 튜브의 순서 p 가 주어진다.
n ≦ 16t ≦ 1000m ≦ 100p ≦ m튜브가 말해야 하는 숫자 t개를 공백 없이 차례대로 나타낸 문자열. 단, 10~15는 각각 대문자 A~F로 출력한다.
let output = solution(2, 4, 2, 1);
console.log(output); // "0111"
output = solution(16, 16, 2, 1);
console.log(output); // "02468ACE11111111"
output = solution(16, 16, 2, 2);
console.log(output); // "13579BDF01234567"
function solution(n, t, m, p) {
let result = '';
let [num, count] = [0, 0];
--p;
while (result.length < t) {
let convertN = (num++).toString(n);
for (let i = 0; i < convertN.length; ++i) {
if (count++ % m === p) result += convertN[i];
}
}
return result.slice(0, t).toUpperCase();
}