Coding Test/백준 - JAVA

백준 11005번 진법 변환2 (JAVA)

6uiw 2024. 12. 22. 22:42

📌문제

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

10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 사용한다.

A: 10, B: 11, ..., F: 15, ..., Y: 34, Z: 35

입력

첫째 줄에 N과 B가 주어진다. (2 ≤ B ≤ 36) N은 10억보다 작거나 같은 자연수이다.

출력

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

 

예제 입력)

60466175 36

 

예제 출력)

ZZZZZ

 

 

📌답

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
        String[] in = br.readLine().split(" ");
        int n = Integer.parseInt(in[0]);
        int b = Integer.parseInt(in[1]);
        String result = "";
        int temp = 0;

        while(n>0) {
            temp = n%b;
            sb.insert(0,temp > 9 ? (char)(temp+55) : (char)(temp+'0'));
            n/=b;
        }
        System.out.println(sb);
    }
}

 

📌코멘트

오답이유 : 형변환 실수

        /**
         *              sb.append(temp > 9 ? (char)(temp+55) : temp);
         *              이렇게 작성했을 때 왼쪽 조건은 char형이고, 오른쪽 조건은 int형이라서
         *              데이터타입이 일관되지 못해 결과에 오류가 생긴다.
         */

 

 

3등😆😆

 

 

 

끝까지 읽어주셔서 감사합니다 :)

Have a good day🐱

 


📢

1. 개발자 준비생이 공부한 내용을 정리한 글입니다. 내용에 오류가 있을 수 있습니다.
2. 위와 같은 이유로 내용에 대한 지적과 조언은 감사하게 받습니다.
3. 이 글의 내용은 계속 공부함으로써 언제든지 추가/수정 될 수 있습니다.