/**
* @param {number} n 진법
* @param {number} t 미리 구할 숫자의 개수
* @param {number} m 게임에 참가하는 인원
* @param {number} p 튜브의 순서
*/
function solution(n, t, m, p) {
let answer = '';
let result = '';
let num = 0;
while (true) {
result += num.toString(n);
num += 1;
if (result.length >= m * t) break;
}
for (let i = p - 1; i < m * t; i += m) {
answer += result[i];
}
answer = result.toUpperCase();
return answer;
}
약간(?)은 수학적인 사고방식이 필요한 문제였다.
반복을 총 몇번할지 범위를 잘 잡아주기만 하면 그다지 어려운 문제는 아니었던 것 같다.
미리 구할 숫자의 개수가 t개이고 게임에 참가하는 인원이 m명이다.
따라서 (t * m) 번 진행한다면, 그 안에 어떤 인원이든 t개의 숫자를 미리 구할 수 있을 것이다.
toString(n)을 이용해서 손쉽게 n진수로 바꿔줄 수 있다.
따라서 자기 차례만 뽑아서 결과값에 더하면서 결과값을 대문자로 바꿔준후 return 해주면 된다.
'PS > Programmers' 카테고리의 다른 글
Programmers / Level 2 / 소수 찾기 / JS (0) | 2022.12.27 |
---|---|
Programmers / Level 2 / 영어 끝말잇기 / JS (0) | 2022.12.27 |
Programmers / Level 2 / 게임 맵 최단거리 / JS (0) | 2022.12.10 |
Programmers / Level 2 / [1차] 뉴스 클러스터링 / JS (0) | 2022.12.10 |