본문 바로가기
  • Jetpack 알아보기
프로그래머스 - JAVA/Level 2

[JAVA] 프로그래머스 Lv.2 : [3차] n진수 게임

by 새우버거♬ 2021. 8. 3.

🔥 2018 KAKAO BLIND RECRUITMENT

입력 형식:

진법 n, 미리 구할 숫자의 갯수 t, 게임에 참가하는 인원 m, 튜브의 순서 p 가 주어진다.

  • 2 ≦ n ≦ 16
  • 0 < t ≦ 1000
  • 2 ≦ m ≦ 100
  • 1 ≦ p ≦ m

출력 형식:

튜브가 말해야 하는 숫자 t개를 공백 없이 차례대로 나타낸 문자열. 단, 10~15는 각각 대문자 A~F로 출력한다.

 

예제:

n t m p result
2 4 2 1 "0111"
16 16 2 1 "02468ACE11111111"
16 16 2 2 "13579BDF01234567"

Solution #1

class Solution {
    public String solution(int n, int t, int m, int p) {
        StringBuilder answer = new StringBuilder();
        StringBuilder builder = new StringBuilder("0");

        // n 진법 변환
        for (int i = 1; i < t * m; i++) {
            int number = i;
            String s = "";

            while (number > 0) {
                s = convert(number % n) + s;
                number /= n;
            }
            builder.append(s);
        }
        
        char[] array = builder.toString().toCharArray();

        for (int i = p - 1; i < array.length; i = i + m) {
            if (answer.toString().length() >= t) break;
            answer.append(array[i]);
        }

        return answer.toString();
    }

    private char convert(int mod) {
        return mod < 10 ? (char) (mod + '0') : (char) ('A' - 10 + mod);
    }
}

 

Result #1

 


 

More Algorithm!

 

👇👇

 

github.com/ggujangi/ggu.programmers

 

ggujangi/ggu.programmers

프로그래머스 알고리즘, JAVA. Contribute to ggujangi/ggu.programmers development by creating an account on GitHub.

github.com

 

 

 

출처 : 프로그래머스