728x90
반응형
문제
정답 풀이
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));
StringTokenizer st = new StringTokenizer(br.readLine());
StringBuilder sb = new StringBuilder();
int N = Integer.parseInt(st.nextToken());
int B = Integer.parseInt(st.nextToken());
while(N != 0){
if(N%B >= 10) sb.append((char)((N%B)+'A'-10));
else sb.append(N%B);
N/=B;
}
System.out.print(sb.reverse().toString());
br.close();
}
}
- 메모리 14280KB
- 시간 128ms
N%B가 10보다 크다는 건 10진수 이상의 수라는 걸 뜻합니다.
N을 B로 나눈 나머지값에 +'A'를 더해주고 10을 빼주면 원하는 값이 나와요.
아스키코드를 char형으로 변환해서 StringBuilder에 담아줍니다.
10보다 크지 않으면 그냥 N%B를 담아주면 되요. 얘는 아스키코드 연산이 없으니 형변환을 안해도 됩니다.
StringBuilder는 reverse 메소드를 제공하기 때문에 이를 사용해주는데
char형으로 담겨있으니 toString메소드를 통해 String으로 변환하여 출력해줍니다.
728x90
반응형
'Computer Science (CS) > 알고리즘' 카테고리의 다른 글
[백준/Java] 2903번 중앙 이동 알고리즘 (0) | 2023.05.18 |
---|---|
[백준/Java] 2720번 세탁소 사장 동혁 (0) | 2023.05.18 |
[백준/Java] 2745번 진법 변환 (0) | 2023.05.16 |
[백준/Java] 2563번 색종이 (0) | 2023.05.14 |
[백준/Java] 10798번 세로읽기 (0) | 2023.05.14 |