본문 바로가기

알고리즘/문제 풀이

백준 11005번 진법 변환2

11005번: 진법 변환 2 (acmicpc.net)

 

11005번: 진법 변환 2

10진법 수 N이 주어진다. 이 수를 B진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를

www.acmicpc.net

1. 내 코드

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

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        ArrayList<Integer> list = new ArrayList<>();

        // 10진수 받기
        int digit = sc.nextInt();
        // 진법 받기
        int radix = sc.nextInt();

        // 나머지를 list에 넣기
        while (digit >= radix){

            if(digit%radix > 9 ){
                list.add(digit%radix +55);
            }
            else{
                list.add(digit%radix);
            }

            digit /= radix;
        }

        //마지막 나머지 넣기
        if(digit> 9){
            list.add(digit + 55);
        } else{
            list.add(digit);
        }


        // 맨 처음 넣은 순대로 출력 
        for (int i = list.size()-1; i >=0 ; i--) {
            if(list.get(i) > 9 ){
                System.out.printf("%c", (char)list.get(i).intValue());
            }else {
                System.out.printf("%d", list.get(i));
            }
        }

    }
}

2. 배운 점

10진수에서 다른 진수로 변환 

항상 그냥 방법만 외워서 그런지 머릿 속에 제대로 남지 않았다. 

따라서 원리를 찾아 이해해 보았다.

<참고 사이트>

진법의 의미, 그리고 2진법, 8진법, 16진법, 10진법 변환 원리와 방법 (tistory.com)

 

진법의 의미, 그리고 2진법, 8진법, 16진법, 10진법 변환 원리와 방법

진법(위치값 기수법)의 의미, 그리고 2진법, 8진법, 16진법, 10진법 변환 원리와 방법 목차 1. 진법이란 2. x진법(2진법, 8진법, 16진법, 10진법) 3. 진법 간 변환 원리, 방법 x진수 → 10진수 10진수 → x진

dlxdlx.tistory.com

나눗셈의 원리를 진법으로 풀어 표시하면 다음과 같이 나온다. 

'알고리즘 > 문제 풀이' 카테고리의 다른 글

백준 1193번 분수찾기  (0) 2023.06.19
백준 2720번 해답  (0) 2023.06.10
백준 2745번 해답  (0) 2023.06.08
백준 2563번 색종이  (0) 2023.06.08
백준 10798번 세로읽기  (0) 2023.06.07