본문 바로가기
Algorithm/BaekJoon[Java]

백준 11576

by 씨니 2022. 4. 1.
728x90

▶ 백준 11576

- A, B의 2가지 진법을 첫째줄에서 입력받음.

- 2번째 줄에서 A진법으로 나타낼 숫자 자리수 받음.

- 마지막줄에서 각 자리수의 수 받음(ex. 17진법으로 나타낸 수 : 두번째 자리 수 =2, 첫번째 자리수 16)

->위의 숫자를 10진법으로 바꾸면 2*(17)^1 + 16*(17)^0 = 50임.

▶ 풀이방법

- A진법 -> 10진법으로 변환 -> B진법으로 변환

import java.io.*;
import java.util.*;
public class Main {
	public static void main(String[] args) throws Exception{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		Stack<String> stack = new Stack<>();
		
		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());
		
		for(int i = 0; i < m; i++) {
			stack.push(st.nextToken());
		}
		
		int sum = 0;
		for(int i = 0; i < m; i++) {
			int num = Integer.parseInt(stack.pop());
			for(int j = 0; j < i; j++) {
				num *= a;
			}
			sum += num;
		}
		
		while(sum > 0) {
			stack.push(String.valueOf(sum%b));
			sum /= b;
		}
		
		while(!stack.isEmpty()) bw.write(stack.pop() + " ");
		
		bw.flush();
		bw.close();
		br.close();
	}
}
728x90

'Algorithm > BaekJoon[Java]' 카테고리의 다른 글

백준 1929  (0) 2022.04.01
백준 1978  (0) 2022.04.01
백준 1212  (0) 2022.04.01
백준 1373  (0) 2022.04.01
백준 2745  (0) 2022.03.31