백준

[백준] 브론즈Ⅱ : 2745번

제에엔 2024. 4. 1. 00:07

🔎 문제

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

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

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

 

⌨️ 입력

첫째 줄에 N과 B가 주어진다. (2 ≤ B ≤ 36)

B진법 수 N을 10진법으로 바꾸면, 항상 10억보다 작거나 같다.

 

💻 출력

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

 


1. C++

#include <iostream>
#include <string>

using namespace std;

int charToNum(char c)
{
    if ('0' <= c && c <= '9')
    {
        return c - '0';
    }
    else
    {
        return c - 'A' + 10;
    }
}

long long stringToNum(string s, int n)
{
    long long result = 0;
    for (char c : s)
    {
        result *= n;
        result += charToNum(c);
    }
    return result;
}

int main()
{
    string binaryString;
    int n;
    cin >> binaryString >> n;

    long long result = stringToNum(binaryString, n);

    cout << result;
}

 

<stoi 함수를 이용한 방법>

#include <iostream>
#include <string>

using namespace std;

int main()
{
    string binaryString;
    int n;
    cin >> binaryString >> n;

    int result = stoi(binaryString, nullptr, n);

    cout << result;
}

 


2. Python

string, n = input().split()
n = int(n)

decimal_number = int(string, n)

print(decimal_number)

 


3. Java

import java.util.Scanner;

public class Bronze2745 {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        String string = scanner.next();
        int n = scanner.nextInt();

        int result = Integer.parseInt(string, n);

        System.out.println(result);

        scanner.close();
    }
}

 


4. Javascript

const readline = require("readline");

const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
})

let string;
let n;

rl.on('line', (input) => {
    [string, n] = input.split(" ");
    n = parseInt(n);

    var result = parseInt(string, n);
    console.log(result);

    rl.close()
})

 


5. Kotlin

fun main() {
    val (string, n_string) = readLine()!!.split(" ")
    val n = n_string.toInt()

    val result = string.toInt(n)

    println(result)
}

'백준' 카테고리의 다른 글

[백준] 실버 II : 2630번 색종이 만들기  (0) 2025.02.05
[백준] 실버Ⅳ: 1065번  (0) 2024.08.30
[백준] 실버Ⅴ : 2563번  (0) 2024.03.31
[백준] 브론즈Ⅰ : 10798번  (1) 2024.03.31
[백준] 브론즈Ⅲ : 2566번  (0) 2024.03.31