이 문제의 풀이는 요약하자면 A진법을 10진법으로 바꾸고 난 후 B진법으로 바꿔주면 되는 것이다!
두번째 줄은 자릿수를 입력하고 그 자릿수에 따른 숫자를 세번째 줄의 입력에 공백으로 나누어서 넣어주면 된다!
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;
public class Main {
public static boolean[] isComposite;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
StringTokenizer st = new StringTokenizer(br.readLine());
List<Integer> list = new ArrayList<>();
int A = Integer.parseInt(st.nextToken()); // 미래사용
int B = Integer.parseInt(st.nextToken()); // 정이가 사용
int m = Integer.parseInt(br.readLine());
st = new StringTokenizer(br.readLine());
//10진수로 변환
int decimalNum = 0;
for(int i=m; i>0; i--){
int num = Integer.parseInt(st.nextToken());
decimalNum += num * Math.pow(A, i - 1);
}
if(decimalNum == 0){
sb.append(0);
}
//B진수로 변환
while(decimalNum != 0){
list.add(decimalNum % B);
decimalNum/=B;
}
for(int i = list.size()-1; i>=0; i--){
sb.append(list.get(i) + " ");
}
System.out.println(sb);
}
}
코드는 이러하다 이전 문제에 A진법을 10진법으로 전환하는 문제와 10진법으로 A진법으로 전환하는 문제가 있었는데 이를 통합한 문제라고 생각하면 된다!
'백준온라인' 카테고리의 다른 글
(JAVA) 백준온라인 11726번 - 2xn 타일링 (0) | 2023.09.10 |
---|---|
(JAVA)백준온라인 1463번 - 1로 만들기 (0) | 2023.09.09 |
(JAVA)백준온라인 1373번 - 2진수 8진수 (0) | 2023.08.23 |
(JAVA) 백준온라인 17087번 - 숨바꼭질 6 (0) | 2023.08.17 |
(JAVA)백준온라인 9613번 - GCD합 (0) | 2023.08.17 |