-
[백준] 2745번 진법 변환 (python)[백준 Baekjoon]/[Python] 2024. 1. 22. 16:46
[문제]
B진법 수 N이 주어진다. 이 수를 10진법으로 바꿔 출력하는 프로그램을 작성하시오.
10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 사용한다.
A: 10, B: 11, ..., F: 15, ..., Y: 34, Z: 35
[입력]
첫째 줄에 N과 B가 주어진다. (2 ≤ B ≤ 36)
B진법 수 N을 10진법으로 바꾸면, 항상 10억보다 작거나 같다.
[ 출력]
첫째 줄에 B진법 수 N을 10진법으로 출력한다.
[아이디어]
1. B는 진법을 나타내므로 int형으로 받고, N은 문자가 될 수 있으므로 str형으로 받는다.
2. N의 0번째 인덱스부터 0제곱, 1제곱, 2제곱 늘려나가기 위해 뒤집는다.
3. 0~Z 까지의 문자열을 하나 생성한다.
4. for문과 enumerate함수를 이용해서 N의 i번째 원소랑 B를 제곱한 후, 0~Z안에서 i의 인덱스 번호를 곱한다.
5.곱한 결과값을 새 변수에 추가해준다.
[코드]
N,B = input().split()
B = int(B)N = N[::-1]zero_to_z ='0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'change_num = 0for i, n in enumerate(N):change_num += (B**i)*(zero_to_z.index(n))print(change_num)'[백준 Baekjoon] > [Python]' 카테고리의 다른 글
[백준] 2903번 (python) (0) 2024.01.26 [백준] 2720번 (python) (0) 2024.01.24 [백준] 11005번 진법 변환2 (python) (1) 2024.01.23 [백준] 2566번 최댓값 (python) (2) 2024.01.22 [백준] 2738번 행렬 덧셈 (python) (0) 2024.01.22