[백준]2745.진법 변환/Java
📃진법 변환 링크
👩🏻💻풀이
import java.util.Scanner;
public class BaseChange_2745 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int answer = 0;
String N = scan.next();
int B = scan.nextInt();
for(int i = 0; i < N.length(); i++) {
if(N.charAt(i) >= '0' && N.charAt(i) <= '9')
answer += (N.charAt(i)-'0') * Math.pow(B, (N.length()-i-1));
else
answer += (N.charAt(i)-'A' + 10) * Math.pow(B, (N.length()-i-1));
}
System.out.println(answer);
}
}
📎문자 0, A, a의 아스키코드는 외우기
10진 | 문자 |
---|---|
48 | 0 |
65 | A |
97 | a |
☑️0 ~ 9 진법인 경우
문자가 N.charAt(i) >= '0' && N.charAt(i) <= '9'인 경우이다.
그렇기 때문에 0의 아스키코드 48을 빼주거나 '0' 문자 그대로 빼주면 된다
(N.charAt(i)-'0' or N.charAt(i)- 48)
☑️10진법을 넘어가는 진법인 경우
A: 10, B: 11, ..., F: 15, ..., Y: 34, Z: 35
이런 경우에는 다음과 같이 알파벳 대문자를 사용하므로 대문자 A의 아스키코드를 빼주거나 'A' 문자 그대로 빼주면 된다!
(N.charAt(i)-'A' + 10 or N.charAt(i)-65 +10) 10부터 A이므로 10을 더해줌
📎Math.pow 함수
- Math.pow(base, exponent)
- base 값을 exponent 값으로 거듭제곱한 숫자 값
- 예시
Math.pow(7, 2); // 49
Math.pow(7, 3); // 343
Math.pow(2, 10); // 1024
Author And Source
이 문제에 관하여([백준]2745.진법 변환/Java), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@sennys2/백준2745.진법-변환Java저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)