개발/문제해결

[프로그래머스] n진수 게임

hyosupsong 2021. 2. 12. 23:38

문제

programmers.co.kr/learn/courses/30/lessons/17687

 

코딩테스트 연습 - [3차] n진수 게임

N진수 게임 튜브가 활동하는 코딩 동아리에서는 전통적으로 해오는 게임이 있다. 이 게임은 여러 사람이 둥글게 앉아서 숫자를 하나씩 차례대로 말하는 게임인데, 규칙은 다음과 같다. 숫자를 0

programmers.co.kr

문제해결방법

숫자를 순서대로 n진수로 만들어서 하나의 문자열로 만들어준다.

문자열의 길이가 t x m 길이 이상이 되면 튜브가 말해야 할 숫자들을 출력해준다.

코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package Programmers;
 
public class Solution_n진수게임 {
    
    public static char[] change = {'0''1''2''3''4''5''6''7''8''9''A''B''C''D''E''F'};
    
    public static String makeNumber(int number, int n) {
        StringBuilder sb = new StringBuilder();
        while(number>0) {
            sb.append(change[number%n]);
            number/=n;
        }
        return sb.reverse().toString();
    }
    
    public static String solution(int n, int t, int m, int p) {
        String answer = "";
        int number = 0;
        String temp = "0";
        while(temp.length()<=t*m) temp+=makeNumber(number++, n);
        for(int i=0; i<t; i++) answer+=temp.charAt((p-1)+m*i);
        return answer;
    }
    
    public static void main(String[] args) {
        int n = 16;
        int t = 16;
        int m = 2;
        int p = 2;
        System.out.println(solution(n, t, m, p));
    }
}
cs


코드에 대한 피드백이나 더 좋은 아이디어는 언제나 환영입니다.