
앞서 있던 진법변환 문제의 연속이다. 받는 값만 쓸데없이 많다.
A진법으로 받은 수의 총합을 구해주고, 그걸 다시 B진법으로 반환하면 된다.
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Stack;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
int a = Integer.parseInt(st.nextToken());
int b = Integer.parseInt(st.nextToken());
int m = Integer.parseInt(br.readLine());
st = new StringTokenizer(br.readLine(), " ");
Stack <Integer> stack = new Stack<>();
int[] digit = new int[m]; // A진법의 각 자리별 숫자를 배열로 받음. 앞부터 높은자릿수.
int realA = 0; // A진법으로 받은 숫자를 10진법으로 나타낸 수.
for (int i=0; i<m; i++) {
digit[i] = Integer.parseInt(st.nextToken());
realA+=(int)(Math.pow(a, m-i-1))*digit[i];
} // A진법으로 받은 숫자를 10진법으로 변환.
while (realA!=0) {
stack.push(realA%b);
realA/=b;
}
int n = stack.size();
StringBuilder sb = new StringBuilder();
while (!stack.isEmpty()) {
sb.append(stack.pop() + " ");
}
System.out.println(sb);
}
}'백준 문제풀이' 카테고리의 다른 글
| 2745. 진법 변환 (자바, Java) (0) | 2022.11.22 |
|---|---|
| 11005. 진법 변환 2 (자바, Java) (0) | 2022.11.22 |
| 17103. 골드바흐 파티션 (자바, Java) (0) | 2022.11.22 |
| 2089. -2진수 (자바, Java) (0) | 2022.11.22 |
| 1212. 8진수 2진수 (자바, Java) (0) | 2022.11.22 |