구현/진법 변환

Q·2021년 8월 1일
0

알고리즘/백준

목록 보기
5/70

문제 설명


전체 코드

import sys

input = sys.stdin.readline

n, b = input().split()

dic = {}
num = 10
for i in range(65, 91):
    dic[chr(i)] = num
    num += 1

n = list(n)
n.reverse()

result = 0
for i in range(len(n)):
    if n[i] in dic:
        result += (dic[n[i]]) * (int(b)**i)
    else:
        result += (int(n[i])) * (int(b)**i)

print(result)

해결 방법

단순 구현문제 이다. dic이라는 딕셔너리를 하나 선언하고 A~Z까지 10~35를 집어넣는다. 그 후 입력받은 n을 리스트로 바꾸고 reverse로 뒤바꾼다. 그 후 문제에서 나온대로 입력받은 n원소가 dic에 있다면 dic에서 그 value를 꺼내와서 10진법으로 바꾼다. 그게 아니라면 1~9값이 n의 원소이므로 int로 명시적 형변환을 한 후 10진법으로 바꾼다. 그리고 result에 값을 더해주고 결과를 print한다.

profile
Data Engineer

0개의 댓글