문제 출처
https://www.acmicpc.net/problem/11576
접근 방식 및 풀이
- 주어진 숫자를 A진법 -> 10진법 -> B진법으로 변환하여 B진법의 결과값을 출력하면된다.
- array 만들때 index를 주의하고, 이를 해결하기 위해 stack구조를 사용하였다.
소스 코드
import java.util.Scanner;
import java.util.Stack;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
int count = sc.nextInt();
int[] arr = new int[count];
for (int i = count-1; i >=0 ; i--) {
arr[i] = sc.nextInt();
}
int result = 0;
for (int i = 0; i <count ; i++) {
result += (arr[i]* Math.pow(a,i)) ;
}
Stack<Integer> stack = new Stack<Integer>();
while (result!=0){
stack.add(result%b);
result= result/b;
}
StringBuilder sb = new StringBuilder();
while (!stack.isEmpty()){
sb.append(stack.pop() + " ");
}
System.out.println(sb);
}
}
결과
'Competition > Baekjoon' 카테고리의 다른 글
[백준] 7576번 토마토 (0) | 2020.03.18 |
---|---|
[백준] 1976번 그래프 (0) | 2020.03.17 |
[백준] 11004번 자바 퀵소트 (0) | 2020.03.16 |