2018 KAKAO BLIND RECRUITMENT [3차] n진수 게임

이동한·2023년 7월 3일
0

알고리즘 기출

목록 보기
20/22
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');
    }
}
profile
Pragmatic, Productive, Positivist

0개의 댓글