728x90
문제
https://programmers.co.kr/learn/courses/30/lessons/17687
풀이 코드
정수를 특정 진법으로 변환한 문자열을 반환해 주는 convert()메서드를 사용해서 t번째 튜브의 순서가 포함된 숫자까지 구한 후, 튜브가 말해야 되는 순서의 숫자들을 문자열로 만들어 반환한다.
public class Solution {
public String solution(int n, int t, int m, int p) {
StringBuilder sb = new StringBuilder();
//t번째 튜브의 순서
int limit = m*(t-1) + p;
int i = 0;
//t번째 튜브의 순서가 포함된 숫자까지만 구한다.
while(sb.length() < limit) {
sb.append(convert(i++, n));
}
StringBuilder sb2 = new StringBuilder();
for(i = p; i <= t*m; i += m) {
sb2.append(sb.charAt(i-1));
}
return sb2.toString();
}
/**
정수 num 을 n 진법으로 변환한 문자열을 반환한다.
*/
public String convert(int num, int n) {
if(num == 0) {
return "0";
}
StringBuilder sb = new StringBuilder();
while(num >= 1) {
sb.append(num%n >= 10 ? Character.toString(num%n+55) : num%n);
num /= n;
}
return sb.reverse().toString();
}
}
'알고리즘 문제풀이 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 땅따먹기 - 자바(Java), DP(Dynamic Programming) (0) | 2022.01.10 |
---|---|
[프로그래머스] 최솟값 만들기 - 자바(Java) (0) | 2022.01.08 |
[프로그래머스] 피보나치 수 - 자바(Java), 메모이제이션 (0) | 2022.01.04 |
[프로그래머스] 카펫 - 자바(Java) (0) | 2022.01.03 |
[프로그래머스] 튜플 - 자바(Java), 2019 카카오 개발자 겨울 인턴십 (0) | 2021.10.22 |
댓글