[백준] 11005번 진법 변환 2 - Java, 자바

Kim Ji Eun·2022년 1월 11일
0

난이도

브론즈 1

문제

https://www.acmicpc.net/problem/11005

코드


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;

// 11005번 진법 변환2
public class boj_1_11005 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        int n = Integer.parseInt(st.nextToken());
        int b = Integer.parseInt(st.nextToken());

        List<Character> list = new ArrayList<>();
        while (n > 0) {
            if (n % b < 10) {
                list.add((char) (n % b + '0'));
            }
            else{
                list.add((char) (n % b - 10 + 'A'));
            }

            n /= b;
        }

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

    }
}

풀이

n%b가 9이하라면
list.add(n%b+'0') 아스키코드값 0을 더해줌으로써 a%b의 값을 아스키코드로 char형리스트에 저장한다.

n%b가 10이상이라면
list.add(n%b-10+'A') 10부터 A이므로 나머지 값에서 10을 빼고 아스키 코드값 'A'를 더해 저장한다.

저장된 리스트를 거꾸로 출력한다.

profile
Back-End Developer

0개의 댓글