
이전 문제와 반대 문제.
원리가 똑같아서 딱히 어려울건 없다.
오히려 무식하게 곱해주면 되서 더 쉬움.
단, 이전에는 숫자->문자 변환이라 배열로 받았는데,
이번엔 문자->숫자 변환이라 맵으로 받았다.
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Map;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
Map <Character, Integer> map = new HashMap<>(); // 문자 -> 숫자로 바꿀 HashMap
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
StringBuilder n = new StringBuilder(st.nextToken());
int b = Integer.parseInt(st.nextToken());
int ans = 0; // 출력할 정답값.
for (int i=0; i<=9; i++) {
map.put((char)(i+48), i);
} // 0~9까지는 그대로
for (int i=10; i<=35; i++) {
map.put((char)(i+55), i);
} // 10~35는 알파벳 대문자
n = n.reverse(); // 십진법에서 맨 뒤가 일의자리이듯, 뒤에서부터 순차계산해야한다.
for (int i=0; i<n.length(); i++) {
ans += Math.pow(b, i) * map.get(n.charAt(i));
} // 반복문 통해서 계산 후 출력.
System.out.println(ans);
}
}'백준 문제풀이' 카테고리의 다른 글
| 11576 : Base Conversion (자바, Java) (0) | 2022.11.22 |
|---|---|
| 11005. 진법 변환 2 (자바, Java) (0) | 2022.11.22 |
| 17103. 골드바흐 파티션 (자바, Java) (0) | 2022.11.22 |
| 2089. -2진수 (자바, Java) (0) | 2022.11.22 |
| 1212. 8진수 2진수 (자바, Java) (0) | 2022.11.22 |