[BOJ] 2745 | 진법 변환

Gaanii·2024년 10월 12일

Problem Solving

목록 보기
23/210
post-thumbnail

아래 백준 로고를 클릭하면 해당 문제로 이동합니다 😀

BOJ 로고



풀이과정


만약 입력으로 ABCDE 36이 들어왔다고 가정해보자.
진법 변환은 다음과 같이 할 수 있다.

ABCDE
10×36410\times36^411×36311\times36^312×36212\times36^213×36113\times36^114×36014\times36^0

해당값을 모두 더하면 16,796,160 + 513,216 + 15,552 + 468 + 14 = 17,325,410이 된다.


코드는 우선 0~Z까지 있는 문자열을 만들었다.
이 문자열의 인덱스를 이용하면 A를 10으로, Z를 35로 바꿔줄 수 있다.

후에 입력받은 N을 뒤집어서 가장 오른쪽부터 계산하게 했다.
for문을 0부터 N의 길이만큼 반복해서 b의 지수가 for문이 증가함에 따라 같이 증가하게 작성했다.

코드


num = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'

n, b = input().split()
n = ''.join(reversed(n))
b = int(b)

result = 0
for x in range(len(n)):
    result += num.index(n[x]) * (b ** x)

print(result)


결과


정답

0개의 댓글