728x90
https://www.acmicpc.net/problem/2745
2745번: 진법 변환
B진법 수 N이 주어진다. 이 수를 10진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를
www.acmicpc.net
문제
B진법 수 N이 주어진다. 이 수를 10진법으로 바꿔 출력하는 프로그램을 작성하시오.
10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 사용한다.
A: 10, B: 11, ..., F: 15, ..., Y: 34, Z: 35
✔ 풀이
a,b=input().rstrip().split()
print(int(a,int(b)))
파이썬의 경우 int 함수를 활용하여 간단하게 n진법을 10진법으로 변환할 수 있다.
int(변환할 string, n진법) 형식이며, n진법은 int 형태로 입력해줘야 한다!
이 방법을 알기 전에는 2진법을 10진법으로 바꾸는 것을 예로 들어 풀이를 생각했다.
2진수 1010을 10진수로 바꾸려면 (1*2^3)+(1*2^1)을 하면되고 결과는 10이 된다.
이를 적용한 코드는 다음과 같다.
N,B=input().split()
n=''.join(reversed(N))
B=int(B)
num="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
result=0
for i in range(len(N)-1,-1,-1):
result+=num.index(N[x])*(B**x)
print(result)
728x90
반응형
'알고리즘' 카테고리의 다른 글
[BOJ/Python3(파이썬)] 백준 14499번: 주사위 굴리기 (0) | 2022.05.13 |
---|---|
[BOJ/Python3(파이썬)] 백준 16935번: 배열 돌리기 3 (0) | 2022.05.12 |
[정렬] 백준 10825번 : 국영수(BOJ, Python, 파이썬) (0) | 2022.01.12 |
[문자열] 백준 10808번: 알파벳 개수(BOJ, Python, 파이썬), ord함수 (0) | 2022.01.11 |
[DP] 백준 2579번: 계단 오르기(BOJ, Python, 파이썬) (0) | 2022.01.09 |