크래프톤 정글(나만의 무기 만들기 WEEK 14 ~ )

11816 8진수, 10진수, 16진수 (Java)

devkty 2025. 6. 16. 02:25
728x90

11816 8진수, 10진수, 16진수 (Java)

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

정수 X가 8/10/16 진수 중 하나입니다. 각각 8진수면 0으로 시작하고, 16진수는 0x나 0X로 시작됩니다. 해당 정수 X를 10진수로 바꿔서 출력하면 됩니다.

// 입력 X는 8, 10, 16 진수로 주어진다.
// if문을 통해 첫번째 문장이 0x와 0X일시 16진수로 0일시 8진수로 인식하여 10진수로 변할 수 있게 구현했다.
// 코드 자체는 GPT의 도움을 받았다.

import java.util.Scanner;

public class Main_11816 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String X = sc.next();  // 16, 8진수는 String으로 받는다. 10진수는 int 이다.
        int result;

        if (X.startsWith("0x") || X.startsWith("0X")) {
            result = Integer.parseInt(X.substring(2), 16);
            // String 타입(16/8진수)를 int형(10진수)으로 바꿔준다.
        }
        else if (X.startsWith("0") && X.length() > 1) {
            result = Integer.parseInt(X.substring(1), 8);
        }
        else {
            result = Integer.parseInt(X);  // 그외의 경우는 10진수로 출력
        }
        System.out .println(result);
    }
}
728x90