본문 바로가기
Algorithm/프로그래머스

[프로그래머스] 카카오 기출 - n진수 게임

by LeeGangEun 2023. 6. 20.

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

풀이


각각 idx를 잡고 말하는 순서와 참가하는 인원을 계속 돌면서
튜브가 말하는 차례이면 StringBulider에 값을 추가해주는 식으로 풀었다.

개인적인 난이도는 백준 기준 실버 4 ? 정도 이지 않을까..

class Solution {

    public static void main(String[] args) {
        new Solution().solution(2, 4, 2, 1);
    }
    // n -> 진법 (2,4,8,16)
    // t -> 말해야하는 개수
    // m -> 게임 참가 인원
    // p -> 순서
    public String solution(int n, int t, int m, int p) {

        StringBuilder sb = new StringBuilder();

        int idx = 0;
        int talkCount = 1;

        while (sb.length() < t) {
            String value = convert(n, idx);

            for (int i = 0; i < value.length(); i++) {
                if(talkCount++ == p && sb.length() < t) sb.append(value.charAt(i));
                if(talkCount > m) talkCount = 1;
            }

            idx++;

        }
        return sb.toString().toUpperCase();
    }

    private String convert(int radix, int num) {
        return Integer.toString(num, radix);
    }
}