문제
https://www.acmicpc.net/problem/2745
소스코드
import math
n, b = map(str, input().split(' '))
b = int(b)
D = {}
for i in range(10):
D[i] = str(i)
for i in range(26):
D[i+10] = chr(65+i)
d = {v: k for k, v in D.items()}
li = []
for i in range(len(n)):
li.append(d.get(n[i]) * math.pow(b, (len(n)-1-i)))
print(int(sum(li)))
풀이
B진법 수 N을 10진법 수로 바꾸는 문제였다.
1. 1~9, A~Z까지 해당하는 10진수 수들을 딕셔너리로 만듦. (이 과정에서 value와 key의 위치를 바꾸는 식을 사용했습니다.)
2. B진법이기에 'X진법-> 10진법'하는데에 사용되는 수학 식을 그대로 pow함수를 이용하여 구현.
'Koala - 9기 > 기초 알고리즘 스터디' 카테고리의 다른 글
[백준/python] 13410 거꾸로 구구단 (0) | 2023.01.29 |
---|---|
[백준/python] 3029 경고 (0) | 2023.01.29 |
[백준/python] 11652 카드 (0) | 2023.01.29 |
[백준/python] 1874번 스택 수열 (0) | 2023.01.29 |
[백준 / C++] 1316번: 그룹 단어 체커 (0) | 2023.01.28 |