๋ฌธ์
10์ง๋ฒ ์ N์ด ์ฃผ์ด์ง๋ค. ์ด ์๋ฅผ B์ง๋ฒ์ผ๋ก ๋ฐ๊ฟ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
10์ง๋ฒ์ ๋์ด๊ฐ๋ ์ง๋ฒ์ ์ซ์๋ก ํ์ํ ์ ์๋ ์๋ฆฌ๊ฐ ์๋ค. ์ด๋ฐ ๊ฒฝ์ฐ์๋ ๋ค์๊ณผ ๊ฐ์ด ์ํ๋ฒณ ๋๋ฌธ์๋ฅผ ์ฌ์ฉํ๋ค.
A: 10, B: 11, ..., F: 15, ..., Y: 34, Z: 35
## ์ ๋ ฅ
์ฒซ์งธ ์ค์ N๊ณผ B๊ฐ ์ฃผ์ด์ง๋ค. (2 โค B โค 36) N์ 10์ต๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ฐ์์ด๋ค.
## ์ถ๋ ฅ
์ฒซ์งธ ์ค์ 10์ง๋ฒ ์ N์ B์ง๋ฒ์ผ๋ก ์ถ๋ ฅํ๋ค.
์๊ฐ ์ ํ | ๋ฉ๋ชจ๋ฆฌ ์ ํ | ์ ์ถ | ์ ๋ต | ๋งํ ์ฌ๋ | ์ ๋ต ๋น์จ |
---|---|---|---|---|---|
0.5 ์ด (์ถ๊ฐ ์๊ฐ ์์) | 256 MB | 34254 | 16465 | 14175 | 48.195% |
https://www.acmicpc.net/problem/11005
ํ์ด
์ฌ๊ธฐ์ ํ์ธํด์ผ ํ ๊ฒ์ 2๊ฐ์ง์ด๋ค.
- b์ง๋ฒ ์ผ๋ก ์ด๋ป๊ฒ ๋ํ๋ผ๊ฒ์ธ๊ฐ.
- b์ง๋ฒ์ผ๋ก ๋์จ ํด๋น ๊ฒฐ๊ณผ๊ฐ ์ด๋ป๊ฒ ์ถ๋ ฅ๋ ๊ฒ์ธ๊ฐ.
1๋ฒ์ ํด๊ฒฐํ๊ธฐ ์ํด์
while (n != 0){
stack.add(n%b);
n /= b;
}
2๋ฒ์ ํด๊ฒฐํ๊ธฐ ์ํด์
while (!stack.isEmpty()){
if(stack.peek() >= 10){
System.out.printf("%c", Integer.parseInt(String.valueOf(stack.pop())) + 55);
}else {
System.out.print(stack.pop());
}
}
์ด๋ ๊ฒ ์ฌ์ฉํ์๋ค. A
๊ฐ 10
๊ณผ ์นํ๋๋ฏ๋ก stack์ ๋ค์ด์๋๊ฐ์ 55
๋ฅผ ๋ํด์ฃผ๋ฉด ํด๋น ์๋ฌธ์๋ก ์นํ๋๋ค.
์ฝ๋
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Stack;
public class ์ง๋ฒ๋ณํ2 {
public static void main(String[] args) throws IOException {
BufferedReader br =new BufferedReader(new InputStreamReader(System.in));
String[] split = br.readLine().split(" ");
long n = Long.parseLong(split[0]);
long b = Long.parseLong(split[1]);
Stack<Long> stack = new Stack<>();
while (n != 0){
stack.add(n%b);
n /= b;
}
while (!stack.isEmpty()){
if(stack.peek() >= 10){
System.out.printf("%c", Integer.parseInt(String.valueOf(stack.pop())) + 55);
}else {
System.out.print(stack.pop());
}
}
br.close();
}
}