알고리즘 문제 풀이를 블로그에 올리는 이유는 풀이, 코드를 기록하기 위함이니
앞으로 문제를 다 긁어오기보다 링크만 두고 풀이가 잘 보이도록 포스팅 할 예정입니다!
이 문제는 주어진 B진법 수 N을 10진법으로 바꾸어 출력하는 문제이다.
진법 변환과 관련된 수학적 개념은 [코딩팩토리] 블로그를 참고하였다.
(이것 저것 구글링하여 기웃거리다가도 결국 종착지는 코딩팩토리 님 블로그...없는게 없다..멋지시다.)
c - '0'
으로 int 변환 후 연산하고int(c) - 55
로 (A의 아스키 코드 65, 해당 문제에서 A의 값 10) int 변환 후 연산import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
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 = Integer.parseInt(st.nextToken());
int sum = 0;
int len = N.length() - 1;
for(char c : N.toCharArray()) {
if(c >= '0' && c <= '9') {
sum += (c - '0') * Math.pow(B, len--);
}else {
sum += ((int)c - 55) * Math.pow(B, len--);
}
}
System.out.println(sum);
}
}