본문 바로가기
Beakjoon&프로그래머스/Java

[프로그래머스/Java] [3차] n진수 게임

by 현장 2026. 4. 1.

-Code

import java.util.*;

class Solution {
    public String solution(int n, int t, int m, int p) {
        // 넉넉한 숫자 까지 진법 변환해 더함
        StringBuilder changeTotalFomation = new StringBuilder();
        for (int i = 0; i < t * m; i++) {
            changeTotalFomation
                .append(Integer.toString(i, n).toUpperCase());
        }
        // t번째 순서까지 단어 저장
        StringBuilder answer = new StringBuilder();
        for (int i = 0; i < t; i++) {
            // m만큼 이동하면서 해당하는 단어 저장
            int idx = (p - 1) + (m * i);
            answer.append(changeTotalFomation.charAt(idx));
        }
        return answer.toString();
    }
}

문제를 좀 틀어지게 이해하여 미리 구할 숫자인 t를 t까지 변환한 수의 문자열 합과 그 길이만큼 m씩 이동하며 저장하는 식으로 로직을 짜서 틀렸습니다.

알고 보니 t번째 턴까지 m만큼 이동하며 해당하는 단어를 저장하여 출력하는 문제였고 그를 위해 넉넉하게 진법 변환한 수들의 합을 지정하고 t번 idx를 세팅하며 저장하도록 하여 해결했습니다.