📝 문제
🔑 풀이 과정
· 진법 변환을 한번이라도 공부해봤다면 매우 쉬운 문제. 나 같은 경우는 실제 사람이 계산할 때 처럼 뒤에서부터 계산하게 작성했다.
· 그리고 문자가 A일때는 숫자 10에 매칭, Z일때는 숫자 35에 매칭된다. A의 아스키 코드값은 65이므로, 10으로 만들어 주려면 55를 빼주면 된다.
🔓 답안
import java.io.*;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st;
//입력
st = new StringTokenizer(br.readLine());
String N = st.nextToken(); //B진법 수 N
int B = Integer.parseInt(st.nextToken()); //진법
//B진법 수 N을 10진법으로 바꾸기
int len = N.length(); //N의 길이
int answer = 0;
for(int i = 0; i < len; i++){
char c = N.charAt(len-1-i);
int a = 0;
if(('0' <= c) && (c <= '9')){
a = c - '0';
}
else if(('A' <= c) && (c <= 'Z')){
a = c - 55; //A가 10 B가 11 ... Z가 35에 매칭되어야 한다. 'A'는 65값을 가지므로 - 55을 해주면 된다.
}
answer += (a * Math.pow(B, i));
}
//출력
bw.write(answer + "\n");
bw.flush();
bw.close();
}
}
🖤 알고리즘 분류
- 수학
- 구현
- 문자열
'PS > Baekjoon' 카테고리의 다른 글
[Baekjoon] 14940 - 쉬운 최단거리 (0) | 2023.09.06 |
---|---|
[Baekjoon] 5086 - 배수와 약수 (0) | 2023.09.06 |
[Baekjoon] 4101 - 크냐? (0) | 2023.09.02 |
[Baekjoon] 11286 - 절댓값 힙 (0) | 2023.09.01 |
[Baekjoon] 11279 - 최대 힙 (0) | 2023.08.31 |
댓글