STUDY/Algorithm

[백준] 2745 진법 변환 python

sinawi95 2022. 1. 18. 09:33
728x90

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

 

2745번: 진법 변환

B진법 수 N이 주어진다. 이 수를 10진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 

www.acmicpc.net

손풀겸 푸는 문제

딕셔너리 자료형을 사용해서 '0'부터 '9'까지 그리고 'A'부터 'Z'까지 생성한뒤 각 자리에 맞는 값을 구해서 계속 더해주었다.

import sys
nums_dict = dict(zip(
    map(chr, range(ord('A'), ord('Z') + 1)),
    range(ord('A') - ord('A') + 10, ord('Z') - ord('A') + 11)
))
for i in range(10):
    nums_dict[str(i)] = i

def main():
    N, B = sys.stdin.readline().split()
    B = int(B)
    ans = 0
    for num_ch in N:
        ans *= B
        ans += nums_dict[num_ch]
    print(ans)

if __name__ == '__main__':
    main()