programmers_[3차] n진수 게임_java
2023. 4. 10. 11:45ㆍAlgorithm/Programmers
728x90
https://school.programmers.co.kr/learn/courses/30/lessons/17687
import java.util.*;
class Solution {
public String solution(int n, int t, int m, int p) {
String answer = "";
int nowNum = 0;
int wantNumSize = m * (t-1) + p; // 총 구해야하는 길이
int lengthSum = 0;
StringBuilder sb = new StringBuilder();
while(true){
String binaryNum = toBinary(nowNum++, n);
int binaryNumLength = binaryNum.length();
lengthSum += binaryNumLength;
sb.append(binaryNum);
if(lengthSum >= wantNumSize){ // 구해야하는 길이를 모두 구한 경우
break;
}
}
char[] resultChar = sb.toString().toCharArray();
//t개의 숫자 구하기
StringBuilder result = new StringBuilder();
for(int i = 0; i<t; i++){
result.append(String.valueOf(resultChar[p + i*m -1]));
}
answer =result.toString();
return answer;
}
// n진법 수로 전환
public String toBinary(int num, int n){
StringBuilder sb = new StringBuilder();
if(num == 0){
return "0";
}
while(num>0){
sb.insert(0, num%n >= 10 ? String.valueOf((char)('A' + num%n-10)) : num%n);
num = num /n ;
}
return sb.toString();
}
}
'Algorithm > Programmers' 카테고리의 다른 글
programmers_땅따먹기_java (0) | 2023.04.10 |
---|---|
programmers_주차 요금 계산_java (0) | 2023.04.10 |
programmers_[3차] 압축_java (0) | 2023.04.10 |
programmers_할인 행사_java (0) | 2023.04.07 |
programmers_피로도_java (0) | 2023.04.06 |