[백준/파이썬] 2745번

민정·2023년 1월 5일
0

[백준/파이썬]

목록 보기
14/245
post-thumbnail

백준 2745번

문제

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

코드

N , B = input().split()
B = int(B)

alpha = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
result = 0
cnt = 0

for i in (reversed(N)):
    if i in alpha:
        result += (alpha.index(i)+10)*(B**cnt) 
    else:
        result += int (i) * (B ** cnt)
    cnt += 1 

print(result)

나의 풀이

계속 valueError가 떠서 뭐가 잘못된건가 했는데, alpha를 잘못적어서 그렇다...^^; 우선 일,십,백,천 의 순으로 값을 result에 더해야하므로 역순으로 반복문을 돌렸다. 그리고 그 값이 숫자가 아니라 알파벳인 경우 인덱스 값 + 10을 해주었다. 그 이유는 A의 경우 N진수에서 10을 담당하는데, alpha에서 인덱스 값이 0이기 때문이다. Z의 경우 인덱스 값이 26이지만, 36진법에선 값이 36이기 때문이다. 참고로 cnt는 자리수 값!

profile
パㅔバ6ㅇr 덤벼ㄹΓ :-0

0개의 댓글