λ¬Έμ
νμλ¨Έμ μ κ°λ°νλ μ μ΄λ μ€λ λ Έλ ₯ λμ νμλ¨Έμ μ κ°λ°νλλ° μ±κ³΅νμλ€. λ―Έλκ° κΆκΈν μ μ΄λ μμ μ΄ κ°λ°ν νμλ¨Έμ μ μ΄μ©νμ¬ 500λ νμ μΈκ³λ‘ μ¬νμ λ λκ² λμλ€. 500λ νμ μΈκ³μμλ νλ‘κ·Έλλ°μ νκ³ μΆμλ μ μ΄λ λ°±μ€ μ¬μ΄νΈμ μ μνμ¬ λ¬Έμ λ₯Ό νκΈ°λ‘ νμλ€. κ·Έλ¬λ λ―ΈλμΈκ³λ Aμ§λ²μ μ¬μ©νκ³ μμκ³ , Bμ§λ²μ μ¬μ©νλ μ μ΄λ λ¬Έμ λ₯Ό ν μκ° μμλ€. λ°μ΄λ νλ‘κ·Έλλ¨Έμλ μ μ΄λ Aμ§λ²μΌλ‘ λνλΈ μ«μλ₯Ό Bμ§λ²μΌλ‘ λ³νμμΌμ£Όλ νλ‘κ·Έλ¨μ μμ±νκΈ°λ‘ νμλ€.
Nμ§λ²μ΄λ, ν μ리μμ μ«μλ₯Ό ννν λ μΈ μ μλ μ«μμ κ°μ§μκ° Nμ΄λΌλ λ»μ΄λ€. μλ₯Ό λ€μ΄ Nμ΄ 17μΌ λ ν μλ¦Ώμμμ μ¬μ©ν μ μλ μλ 0, 1, 2, ... , 16μΌλ‘ μ΄ 17κ°μ§κ° λλ€.
## μ λ ₯
μ λ ₯μ 첫 μ€μλ λ―ΈλμΈκ³μμ μ¬μ©νλ μ§λ² Aμ μ μ΄κ° μ¬μ©νλ μ§λ² Bκ° κ³΅λ°±μ ꡬλΆμΌλ‘ μ£Όμ΄μ§λ€. Aμ Bλ λͺ¨λ 2μ΄μ 30μ΄νμ μμ°μλ€.
μ λ ₯μ λ λ²μ§Έ μ€μλ Aμ§λ²μΌλ‘ λνλΈ μ«μμ μ리μμ κ°μ m(1 β€ m β€ 25)μ΄ μ£Όμ΄μ§λ€. μΈ λ²μ§Έ μ€μλ Aμ§λ²μ μ΄λ£¨κ³ μλ μ«μ mκ°κ° 곡백μ ꡬλΆμΌλ‘ λμ μλ¦ΏμλΆν° μ°¨λ‘λλ‘ μ£Όμ΄μ§λ€. κ° μ«μλ 0μ΄μ Aλ―Έλ§μμ΄ λ³΄μ₯λλ€. λν μκ° 0μΌλ‘ μμνλ κ²½μ°λ μ‘΄μ¬νμ§ μλλ€.
Aμ§λ²μΌλ‘ λνλΈ μλ₯Ό 10μ§λ²μΌλ‘ λ³ννμμ λμ κ°μ μμ μ μμ΄λ©° 220λ³΄λ€ μλ€.
## μΆλ ₯
μ λ ₯μΌλ‘ μ£Όμ΄μ§ Aμ§λ²μΌλ‘ λνλΈ μλ₯Ό Bμ§λ²μΌλ‘ λ³ννμ¬ μΆλ ₯νλ€.
μκ° μ ν | λ©λͺ¨λ¦¬ μ ν | μ μΆ | μ λ΅ | λ§ν μ¬λ | μ λ΅ λΉμ¨ |
---|---|---|---|---|---|
2 μ΄ | 256 MB | 10184 | 5656 | 4825 | 56.177% |
https://www.acmicpc.net/problem/11576
νμ΄
1λ²μ§Έμ€ A B (Aμ§λ²μ Bμ§λ²μΌλ‘ λ°κΏλΌ!)
2λ²μ§Έμ€ M(M κ°μ μ
λ ₯μ΄ λ€μ΄μ¬ μμ )
3λ²μ§Έμ€ X Y .... (Aμ§λ²μΌλ‘ κ°μ리μλ₯Ό λνλ)
λ¬Έμ λ₯Ό μ€λͺ νμλ©΄ μ΄λ κ² λλ€. λμ κ²½μ° 3λ²μ§Έμ€μ ν΄μνμ§ λͺ»ν΄μ μ§λμ λΊλ€... λ¬Έν΄λ ₯μ κΈΈλ¬μΌν λ―... λ¬Έμ νμ΄μμλ₯Ό 보μλ©΄ λ€μκ³Ό κ°λ€.
- Aμ§λ² -> 10μ§λ²
- 10μ§λ² -> Bμ§λ²
1λ²μ μνν λλ Aμ μ리μ μ κ³±κ³Ό μ리μλ₯Ό κ³±νλ λ°©μμΌλ‘ λ¬Έμ λ₯Ό νλ©΄λκ³ ,
2λ²μ μνν λλ 10μ§λ²μλ₯Ό Bμ§λ²μΌλ‘ λλ κ°λ©° λμ¨ λλ¨Έμ§λ₯Ό μμμΌλ‘ νμΆνλ©΄λλ€.
μ½λ
import java.io.IOException;
import java.util.Scanner;
import java.util.Stack;
public class BaseConversion {
public static void main(String[] args) throws IOException {
Scanner sc = new Scanner(System.in);
int A = sc.nextInt();
int B = sc.nextInt();
int m = sc.nextInt();
int[] arr = new int[m];
for (int i = 0; i < m; i++) {
arr[i] = sc.nextInt();
}
int ten = 0;
for (int i = 0; i < m; i++) {
ten += arr[i] * Math.pow(A, m-i-1);
// 237(8) 8μ§μ 237μ 10μ§μλ‘ λ°κΎΈλ©΄...?
// 2 x pow(8,2) i = 0
// 3 x pow(8,1) i = 1
// 7 x pow(8,0) i = 2
// μ¦ pow(8,3-i-1)
}
Stack<Integer> stack = new Stack<>();
while (ten != 0) {
stack.push(ten % B);
ten /= B;
}
while (!stack.isEmpty()) {
System.out.print(stack.pop() + " ");
}
sc.close();
}
}