백준 문제 풀이 - 진법 변환 2745번
📜 문제 이해하기
B진법 수 N이 주어진다. 이 수를 10진법으로 바꿔 출력하는 프로그램을 작성하시오.
10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 사용한다.
A: 10, B: 11, ..., F: 15, ..., Y: 34, Z: 35
💡 문제 재정의
B진법 수 N을 10진법으로 출력해라
✏️ 계획 수립
각 자리수에 B의 자리수 인덱스의 승수를 곱하면 된다.
예시)
2진법: 011 -> 1 x 2^0 + 1 x 2^1 + 0 x 2^2
5진법: 324 -> 4 x 5^0 + 2 x 5^1 + 3 x 5^2
💻 계획 수행
if __name__ == '__main__':
N, B = input().split()
result = 0
B = int(B)
L = len(N)
for i, n in enumerate(N):
result += B ** (L - i - 1) * (ord(n) - 55) if n.isalpha() else B ** (L - i - 1) * int(n)
print(result)
🤔 회고
시험이 끝나고 다시 1일 1백준 시작으로 처음에는 간단한 문제를 골랐다.
진법에 대한 개념을 제대로 이해하면 풀 수 있는 문제이다.
Author And Source
이 문제에 관하여(백준 문제 풀이 - 진법 변환 2745번), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@delicate1290/백준-문제-풀이-로프-2217번저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)