akjfal

[Programmers] [3차] n진수 게임 본문

알고리즘/programmers

[Programmers] [3차] n진수 게임

akjfal 2021. 7. 3. 17:40
// 0부터 연산을 쭉해서 string의 길이가 t*m만큼 될때까지 연산한다. -> 하면서 answer에 넣는건어떰?

function SwitchNum(num){
    switch(num){
        case 10: 
            return "A"
        case 11: 
            return "B"
        case 12: 
            return "C"
        case 13: 
            return "D"
        case 14: 
            return "E"
        case 15: 
            return "F"
    }
    return String(num);
}

function NumtoString(nowNum, n){
    let changeNum = "";
    while(true){
        let tmp = parseInt(nowNum / n);
        if(tmp == 0){
            return SwitchNum(nowNum) + changeNum;
        }else{
            changeNum = SwitchNum(nowNum%n) + changeNum;
            nowNum = parseInt(nowNum/n);
        }
    }
}

function solution(n, t, m, p) {
    var answer = '';
    let nowNum = 0;
    let nowString = "";
    let length = nowString.length;
    while(length < t*m){
        nowString += NumtoString(nowNum, n);
        length = nowString.length;
        nowNum++;
    }
    let idx = p;
    for(let i = 0; i < t; i++){
        answer += nowString.charAt(idx + i * m - 1);
    }
    
    return answer;
}

Java를 주로 다루기때문에 js보단 java스럽게 짯다. 

만약 Java였다해도 비슷했을텐데 Integer.toString(x, n진법)을 사용하면 더 편하다. 이를 기억해둬야겠다.

 

'알고리즘 > programmers' 카테고리의 다른 글

[Programmers]비밀지도  (0) 2021.07.04
[Programmers] 신규 아이디 추천  (0) 2021.07.03
[Programmers] 짝지어 제거하기  (0) 2021.06.24
[Programmers] 올바른 괄호  (0) 2021.06.24
[Programmers] [3차] 파일명 정렬  (0) 2021.06.24
Comments