[백준]11005번: 진법 변환2

이진솔·2024년 5월 9일
0
post-thumbnail

# 문제

10진법 수 N이 주어진다. 이 수를 B진법으로 바꿔 출력하는 프로그램을 작성하시오.

[입력]
첫째 줄에 N과 B가 주어진다.

[출력]
첫째 줄에 10진법 수 N을 B진법으로 출력한다.

# 정답

import java.util.ArrayList;
import java.util.Scanner;
import java.util.StringTokenizer;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        StringTokenizer st = new StringTokenizer(sc.nextLine());

        int N = Integer.parseInt(st.nextToken());
        int B = Integer.parseInt(st.nextToken());

        ArrayList<Character> arr = new ArrayList<>(); // 결과

        while (N > 0) { // N이 나눌 수 있는 경우
            if (N % B < 10) { // 나머지가 10보다 아래인 경우에는 그대로 사용
                arr.add((char) (N % B + '0')); //
            } else { // 클 경우에는 -10을 해주고 'A'를 더해줌
                arr.add((char) (N % B - 10 + 'A'));
            }
            // -10을 안하고 그대로 더해주면 해당 범위를 벗어난다.
            N /= B;
        }

        for (int i = arr.size() - 1; i >= 0; i--) {
            System.out.print(arr.get(i));
        }
    }
}

# 알아가야 할 것!

  1. 10진법 => B진법: 나머지 비교 후 역순 출력

  • 정리
    B진법에서 10진법: 자리 확인
    10진법에서 B진법: 나머지 확인
profile
성장하기

0개의 댓글