- 이 문제는 바로 전 포스트에 올렸던 2745번 문제의 반대 버전으로 보면 된다.
문제 해석
- 전 포스트와 반대로 10진수의 값과 바꿀 진법(B)를 입력받고 B진법의 값으로 바꾸면 된다.
- 예시로 10진수를 16진수로 바꾸는 방법이다.
- 이런식으로 코드를 작성하면 된다는 의미!
코드
import java.io.*;
import java.util.ArrayList;
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());
int N = Integer.parseInt(st.nextToken());
int B = Integer.parseInt(st.nextToken());
br.close();
ArrayList<Character> list = new ArrayList<>();
while (N > 0) {
if (N % B < 10) {
list.add((char) (N % B + '0'));
}
else{
list.add((char) (N % B - 10 + 'A'));
}
N /= B;
}
for (int i = list.size() - 1; i >= 0; i--) {
System.out.print(list.get(i));
}
}
}
결과
느낀점
- 아직 몇진수로 바꿔야한다는 문제를 많이 풀어보지 않아서 문제 풀때 어색한 감이 있지만, 이 문제를 계기로 다시 리마인드하는 기회가 되었다...