Java/Java 알고리즘

백준 11816번 8진수, 10진수, 16진수 변환 JAVA 구현해보기

kimc 2022. 7. 20. 21:56

```

백준 11816번 8진수, 10진수, 16진수 변환 JAVA 구현해보기

```

이번 글을 통해 배워갈 내용

  1. 백준 11816번 8진수, 10진수, 16진수 변환 JAVA 풀이

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

 

11816번: 8진수, 10진수, 16진수

첫째 줄에 X가 주어진다. X는 10진수로 바꿨을 때, 1,000,000보다 작거나 같은 자연수이다. 16진수인 경우 알파벳은 소문자로만 이루어져 있다.

www.acmicpc.net

백준 11816번 8진수, 10진수, 16진수 변환은

난이도 브론즈 등급의 문제로서

 

8진수, 16진수 10진수 중에 하나인 정수가 주어지고

0으로 시작하면 8진수

0x로 시작하면 16진수일 경우

10진수로 변환해서 출력해주면 되는 문제입니다.


30분 정도 위에 링크를 방문하셔서 풀어보시고

안 풀리시는 경우에만 아래 해답을 봐주시면 감사하겠습니다.


8진수 , 10진수, 16진수 여부를 판단한 다음

string.substring(n);을 사용해서 n번째까지 입력문자를 제거해주고

진수에 맞게 BigInteger(입력 스트링, 진수)를 써서 10진수로 변환하였습니다.

 

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

public class Main {

    public static void main(String[] args) throws IOException {
        final BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        System.out.print(solution(br.readLine()));
    }

    private static String solution(String input) {
        int radix = 10;
        if (input.startsWith("0x")) {
            input = input.substring(2);
            radix = 16;
        } else if (input.startsWith("0")) {
            input = input.substring(1);
            radix = 8;
        }
        return new BigInteger(input, radix).toString();
    }

}

// https://stackoverflow.com/questions/5886619/hexadecimal-to-integer-in-java
// https://codemasterkimc.tistory.com

 

읽어주셔서 감사합니다

 

무엇인가 얻어가셨기를 바라며

 

오늘도 즐거운 코딩 하시길 바랍니다 ~ :)

 


 

728x90