class Solution {
public String solution(int n, int t, int m, int p) {
StringBuilder sb = new StringBuilder();
StringBuilder ans = new StringBuilder();
int curNum = 0;
while(sb.length()<m*t){
sb.append(getRadixNum(curNum++,n));
}
/*
for 문으로 일정한 간격 만큼 건너뛰기
*/
for(int i = p-1; i<m*t; i+=m){
ans.append(sb.charAt(i));
}
return ans.toString();
}
/**
임의의 정수를 임의의 진법으로 나타내는 방법
*/
public String getRadixNum(int data, int radix){
StringBuilder sb = new StringBuilder();
while(data>=radix){
sb.append(numClip(data%radix));
data /=radix;
}
sb.append(numClip(data%radix));
return sb.reverse().toString();
}
/**
숫자에 맞는 문자로 바꾸어준다 ex) A -> 10, B->11 ...
*/
public char numClip(int data){
if(data>=10){
return (char) (data-10 +'A');
}else return (char) (data+'0');
}
}