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 result=0;
int sum=0;
for(int i=0; i<N.length(); i++) {
char c = N.charAt(i);
if('0'<=c && c<='9') {
result=c-48;
}else if('A'<=c && c<='Z'){
result=c-55;
}
sum+= result * Math.pow(B, N.length()-1-i);
}
System.out.println(sum);
}
}
풀이 방법을 생각할때는 쉽게 생각했는데 구현하는데 있어서 막히는 부분이 있어서 해결하지 못했다.
문제 해결에 필요한 요소
1. N은 각 자리의 숫자가 0~9 또는 10~35에 해당하는 문자 A~Z를 입력 받기 때문에 문자로 입력 받아야 한다.
2. 입력 받은 각 자리수가 숫자일 경우와 문자일 경우로 나눠 조건문을 작성해야 한다.
3. 10진법으로 변환할때는 제곱을 구해야 하므로 Math.pow(밑, 지수)를 사용해야 한다.
4. 각각의 자리는 N.length()-1-i 로 구해야 한다.
이 모든 걸 생각해냈는데도 문제를 풀지 못했다. 막상 저런 요소는 생각해내고 반복문 안의 내용을 구현하지 못했다.
어찌되었든 간에 다 비겁한 변명이고 결과적으로 풀지 못한 것이다.
더 익숙해지도록 노력해야겠다.
'알고리즘 풀이' 카테고리의 다른 글
[백준] 2720번: 세탁소 사장 동혁 - java 풀이 (0) | 2023.06.28 |
---|---|
[백준] 11005번: 진법 변환 2 - java 풀이 (0) | 2023.06.28 |
[백준] 1316번: 그룹 단어 체커 - java 풀이 (0) | 2023.06.27 |
[백준] 2941번: 크로아티아 알파벳 - java 풀이 (0) | 2023.06.27 |
[백준] 1157번: 단어 공부 - java 풀이 (0) | 2023.06.27 |