본문 바로가기
알고리즘/백준

백준 11576번 - Base Conversion (Java 8)

by latissimus 2022. 3. 20.

https://www.acmicpc.net/problem/11576

 

11576번: Base Conversion

타임머신을 개발하는 정이는 오랜 노력 끝에 타임머신을 개발하는데 성공하였다. 미래가 궁금한 정이는 자신이 개발한 타임머신을 이용하여 500년 후의 세계로 여행을 떠나게 되었다. 500년 후의

www.acmicpc.net

코드 :

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 void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        List<Integer> list = new ArrayList<>();
        StringBuilder sb = new StringBuilder();

        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);
    }
}

 

댓글