아이디어 : 제곱을 나타나는 메소드, 숫자를 판별하는 방법을 주의해보자
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws Exception {
Scanner sc = new Scanner(System.in);
String str = sc.next(); // 바꿀 수를 입력받음
int num = sc.nextInt(); // 몇진법으로 바꿀건지 입력받음
int sum = 0;//각 자릿수를 변환한 값을 합친 최종 값
for(int i = 0; i < str.length(); i++) {
// 입력받은 문자열의 길이만큼 반복함으로서 자릿수마다 진법변환을 진행
char a = str.charAt(i);
//a는 한 문자열의 i번째 문자를 입력받음
if(Character.isDigit(a)) { // a가 숫자라면
int digit = Character.getNumericValue(a);
// a를 int타입으로 digit에 저장
int dou = (int) Math.pow(num, str.length()-i-1);
//100의 자리 수라면 num을 2번 제곱해야함. 규칙에 따라 -1포함
// Math.pow를 사용하여 num의 str.length()-i-1만큼 제곱함
sum = sum + digit * dou;
sum에 계산한 자릿수의 값을 저장
}
else if(Character.isUpperCase(a)){
// 문자일 경우 계산
int x = a - 'A' + 10;
// 대문자 A부터 10을 나타낸다. B는 11 이런식.
// 입력받은 값에서 아스키코드 값인 'A'를 빼고 + 10을 더하면 A부터 10(Z는 26)을 표현한다
int dou = (int) Math.pow(num, str.length()-i-1);
sum = sum + x * dou;
}
}
System.out.print(sum);
}
}'java' 카테고리의 다른 글
| 백준 2292 벌집 자바 java (0) | 2024.01.11 |
|---|---|
| 백준 11005 진법변환2 10진수를 N진법으로 java 자바 (0) | 2024.01.11 |
| 백준 2563 색종이 자바 java (1) | 2024.01.10 |
| 백준 1316 그룹단어 자바 java (0) | 2024.01.10 |
| 백준 2941 크로아티아 (0) | 2024.01.09 |