자바 백준 11576번
실버 5
https://www.acmicpc.net/problem/11576
문제 보기
분류: 수학, 구현, 정수론
코드 풀이
import java.util.Scanner;
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 입력으로부터 A진법, B진법, 자릿수의 개수를 받음
int A = sc.nextInt();
int B = sc.nextInt();
int m = sc.nextInt();
// A진법으로 표현된 숫자를 10진법으로 변환
int decimal = convertToDecimal(sc, A, m);
// 10진법 숫자를 B진법으로 변환
ArrayList<Integer> converted = convertToBaseB(decimal, B);
// 변환된 결과를 출력
printConvertedResult(converted);
}
// A진법으로 표현된 숫자를 10진법으로 변환하는 메서드
private static int convertToDecimal(Scanner sc, int A, int m) {
int decimal = 0;
for (int i = 0; i < m; i++) {
int digit = sc.nextInt();
decimal = decimal * A + digit;
}
return decimal;
}
// 10진법 숫자를 B진법으로 변환하는 메서드
private static ArrayList<Integer> convertToBaseB(int decimal, int B) {
ArrayList<Integer> converted = new ArrayList<>();
while (decimal > 0) {
int remainder = decimal % B;
converted.add(remainder);
decimal /= B;
}
return converted;
}
// 변환된 결과를 출력하는 메서드
private static void printConvertedResult(ArrayList<Integer> converted) {
for (int i = converted.size() - 1; i >= 0; i--) {
System.out.print(converted.get(i) + " ");
}
}
}
'공부하기 > 백준' 카테고리의 다른 글
[Java] 백준 풀기 2824 - 최대공약수 (0) | 2024.02.29 |
---|---|
[Java] 백준 풀기 5363 - 요다 (0) | 2024.02.28 |
[Java] 백준 풀기 22233 - 가희와 키워드 (2) | 2024.02.26 |
[Java] 백준 풀기 9084 - 동전 (2) | 2024.02.24 |
[Java] 백준 풀기 5523 - 경기 결과 (0) | 2024.02.23 |