https://school.programmers.co.kr/learn/courses/30/lessons/17687
주어진 숫자를 n진수로 바꿔주는 Integer.toString() 메서드만 알고 있다면 무난하게 풀 수 있다.
0부터 숫자를 1씩 더해가며 n 진수로 바꿔 하나의 문자열로 합치되, 그 문자열의 자릿수는 최대 t(개수) * m(인원수) 이어야 한다.
이렇게 하나로 합쳐진 문자열을 대상으로 튜브가 출력할 문자열만 뽑아주면 끝..
import java.util.*;
class Solution {
public String solution(int n, int t, int m, int p) {
int limit = t * m;
StringBuilder sb = new StringBuilder();
int num = 0;
while (sb.length() < limit) {
sb.append(Integer.toString(num++, n));
}
String answer = "";
int idx = p - 1;
int count = 0;
while (count < t) {
answer += String.valueOf(sb.charAt(idx)).toUpperCase();
idx += m;
count++;
}
return answer;
}
}
'코딩테스트 > programmers' 카테고리의 다른 글
모음사전 (0) | 2023.10.23 |
---|---|
게임 맵 최단거리 (0) | 2023.10.23 |
압축 (1) | 2023.10.18 |
k진수에서 소수 개수 구하기 (0) | 2023.10.16 |
전화번호 목록 (0) | 2023.10.16 |