🧩 Programming Languages/Python CodingTest

백준 2745번(bronze 2) : 진법 변환

복숭아아이스티에샷추가 2024. 8. 20. 05:00

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

 

[ 문제 ]

B진법 수 N이 주어진다. 이 수를 10진법으로 바꿔 출력하는 프로그램을 작성하시오.

10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 사용한다.

A: 10, B: 11, ..., F: 15, ..., Y: 34, Z: 35

 

 

① nums 라는 변수에 0~9 와 A~Z 값을 저장한다.

nums = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"

 

이러면 본인의 값은 인덱스 번호와 동일하기 때문에 답을 도출하는데 수월할 것이다.

 

 

② 입력

n, b = input().split()
b = int(b)
N = len(n)
sum = 0

 

 

③ 진법 계산

 

바로 머릿속에 구현이 되지 않아 노트에 적어가며 이해해보았다. 로 했던데 

다른 사람들은 애초에 문자열을 뒤집어서 bi 로 계산했었다.

성능 차이는 없을테니 나는 내 방식대로~

 

for i in range(N):
    sum += b**(N-1-i) * nums.index(n[i])

print(sum)