반응형

앞에서 봤던 진법 변환 2가 10진수에서 B진수로 바꾸는 문제였다면, 이 문제는 B진수를 10진수로 바꾸는 문제이다.
사실 진법 변환을 잘 몰랐는데 이번에 문제들을 풀면서 잘 배워간다(…)
자릿수 별로 B의 자릿수 제곱을 곱한 값들을 다 더해주면 된다!
브론즈라 그런지 크게 어려운 부분은 없는 문제.
import java.io.*;
import java.util.StringTokenizer;
public class RadixChange_2745 {
public static int stoi(String str) {
return Integer.parseInt(str);
}
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
String N = st.nextToken();
int B = stoi(st.nextToken());
int res = 0; // 최종적으로 반환할 10진수 값
for (int i=0; i<N.length(); i++) {
char c = N.charAt(i);
int tmp;
if (c >= 'A') { // 그 단어가 알파벳인 경우
tmp = (int)c - 'A' + 10; // 그 알파벳을 해당하는 수로 바꿔준다 ('A'부터 10)
} else { // 알파벳이 아닌 경우 (숫자인 경우)
tmp = c - '0'; // char로 되어있는 그 수를 int로 바꿔준다
}
tmp *= Math.pow(B, N.length()-i-1); // 자릿수 만큼 B의 거듭제곱으로 곱한 값을
res += tmp; // 반환할 값에 더한다
}
System.out.print(res);
br.close();
}
}
로그인
www.acmicpc.net
작성일자: 2023-09-17
'컴퓨터 공학 > 백준' 카테고리의 다른 글
[백준] JAVA 자바 : Base Conversion (11576번) (0) | 2024.01.22 |
---|---|
[백준] JAVA 자바 : 소인수분해 (11653번) (0) | 2024.01.22 |
[백준] JAVA 자바 : 진법 변환 2 (11005번) (0) | 2024.01.22 |
[백준] JAVA 자바 : 골드바흐 파티션 (17103번) (0) | 2024.01.22 |
[백준] JAVA 자바 : 8진수 2진수 (1212번) (0) | 2024.01.22 |