You will be fine

7. n진수게임 (프로그래머스)

by BFine
반응형

가. 문제파악

 1. 유형 : 구현

    -   이문제는 처음보고 규칙을 찾아야 하는건가 싶어서 너무 어렵게 느껴졌다. 

    -   이게 어떻게 level2인가 싶었는데 최대치해도 크게 복잡도가 없어보여서 그대로 구현했더니 맞았다..

 

나. 코드 

 1. 풀이 : 진법, 구현 

    -   미리 구해야하는 수 까지만 구하면된다.

    -   n진법으로 변환해서 때려넣기만 하면 된다!


public class Solution {

    String de[] = {"A","B","C","D","E","F"};
    public String solution(int n, int t, int m, int p){
        // p 튜브순서, m 참가인원, t 미리구할수개, n진법
        int total = m * t;
        StringBuilder to = new StringBuilder();
        to.append(0);
        for (int i = 1; i < total; i++) {
            int num = i;
            StringBuilder sb = new StringBuilder();
            while(num > 0){
                int r = num%n;
                num = num/n;
                if(r >= 10){
                    sb.append(de[r-10]);
                }else {
                    sb.append(r);
                }
            }
            to.append(sb.reverse());
        }
        StringBuilder res = new StringBuilder();
        p = p-1;
        for (int i = 0; i < t; i++) {
            res.append(to.charAt(p+m*i));
        }
        return res.toString();
    }


    public static void main(String[] args) {
        //System.out.println(new Solution().solution(new int[][]{{0,1,1,1},{1,1,1,1},{1,1,1,1},{0,0,1,0}}));
       // System.out.println(new Solution().solution(new int[][]{{0,0,1,1},{1,1,1,1}}));
        System.out.println(new Solution().solution(2,4,2,1));
        System.out.println(new Solution().solution(16,16,2,1));
    }
}
반응형

블로그의 정보

57개월 BackEnd

BFine

활동하기