기초 프로그래밍/Python
[백준] 2745번 파이썬 python(진법 변환)
Chaerry._o
2023. 9. 15. 15:37
반응형
▷ 문제
B진법 수 N이 주어진다. 이 수를 10진법으로 바꿔 출력하는 프로그램을 작성하시오.
10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 사용한다.
A: 10, B: 11, ..., F: 15, ..., Y: 34, Z: 35
▷ 전체 코드
N, B = input().split()
N = N[::-1]
B = int(B)
a = list("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ")
b = 0
for i,n in enumerate(N):
b += (B**i)*(a.index(n))
print(b)
▷ 코드 분석
N, B = input().split()
N = N[::-1]
B = int(B)
변수 N에 변환할 수를 저장한다. 변수 B에 진법을 저장한다.
input() 함수를 사용해 입력된 요소를 문자열로 변수에 저장한다. split() 함수를 사용해 공백을 기준으로 나눠준다.
변수 N에 저장된 문자열을 [::-1]을 사용해 뒤집어준다.변수 B에 저장된 문자열을 int() 함수를 사용해 정수형으로 변환한다.
a = list("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ")
b = 0
리스트 a에 list() 함수를 사용해 괄호 안에 요소를 저장한다.
변수 b에 0을 저장한다.
for i,n in enumerate(N):
b += (B**i)*(a.index(n))
for 문을 사용해 변수 i와 n에 enumerate() 함수를 사용해 변수 N에 저장된 요소의 인덱스와 그 인덱스에 있는 문자를 넣어준다.
변수 b에 B진법을 10진법으로 바꾸는 공식을 사용해 10진법으로 바꾼 값을 저장한다.
print(b)
print() 함수를 사용해 B진법에서 10진법으로 변환된 값을 출력한다.
반응형