코딩테스트/[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