[프로그래머스, 17687] [3차] n진수 게임 (java)
Problem Solving/Programmers

[프로그래머스, 17687] [3차] n진수 게임 (java)

728x90

https://school.programmers.co.kr/learn/courses/30/lessons/17687

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

728x90

메모리: 98.2 MB, 시간: 45.20 ms

사용 알고리즘: 구현

 

import java.util.*;

class Solution {
    
    LinkedList<Character> list;
    
    public String solution(int n, int t, int m, int p) {
        
        StringBuilder answer = new StringBuilder();
        
        list = new LinkedList<>();
        list.add('0');
        list.add('0');
        
        int now = 1;
        while(list.size() < t * m + 1) {
            change(n, now++);
        }
        
        for(int i = p; i <= t * m; i += m)
            answer.append(list.get(i));
        
        return answer.toString();
    }
    
    private void change(int n, int num) {
        
        int k = 1;
        while(k * n <= num) k *= n;
        
        int tmp;
        while(k != 0) {
            tmp = num / k;
            num %= k;
            k /= n;
            
            if(tmp <= 9) list.add((char)(tmp + '0'));
            else list.add((char)('A' + (tmp - 10)));
        }
    }
}
728x90