코딩테스트/[JAVA] 백준
[백준 | 11005번] 진법 변환(2)
냠냠쿠
2023. 8. 13. 19:07
728x90
https://www.acmicpc.net/problem/11005

📝 나의풀이
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Main {
public static void main(String args[]) {
Scanner scanner = new Scanner(System.in);
long N = scanner.nextInt(); //10 진수 N
int B = scanner.nextInt(); //몇 진수로 바꿀건지
List<Character> NArray = new ArrayList<>();
while (0<N) {
if(N%B<10) {
NArray.add((char)(N%B+'0'));
} else {
NArray.add((char)(N%B-10+'A'));
}
N /= B;
}
for( int i=NArray.size()-1; 0<=i; i--) {
System.out.print(NArray.get(i));
}
}
}
- 입력받은 10 진수 N이 0보다 큰 동안만 반복
- N%B가 10 이상인 경우 10부터 'A'로 출력 되어야 하기 때문에 숫자로 표현되어야하는 1~10 자리수 (총 10)을 빼 준 후 아스키코드 값 'A'를 더해준다
- N%B가 10 이하인 경우 아스키 코드 값 0을 더해준다.
- 저장한 리스트를 역순으로 가져온다.
728x90