새소식

⌨️ Algorithms/백준

[Python] 백준 2745번_진법 변환

2023. 6. 14. 19:39

  • -

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
  • 입력
    • 첫째 줄에 N과 B가 주어짐 (2 ≤ B ≤ 36)
    • B진법 수 N을 10진법으로 바꾸면, 항상 10억보다 작거나 같음
  • 출력
    • 첫째 줄에 B진법 수 N을 10진법으로 출력
  • 시간 제한: 1초
  • 메모리 제한: 128 MB

 

"""
입출력 예시)

ZZZZZ 36
            -> 60466175
"""

 

 

## 의사코드 ##

# n진법 -> 10진법
# int('숫자 문자열', n)

 

 

 

 

n, b = input().split()
print(int(n, int(b)))

 

 

 

 

# 36진법
# ZZZZZ 
#     -> (Z x 36**4) + (Z x 36**3) + (Z x 36**2) + (Z x 36**1)+ (Z x 36**0)

 

n, b = input().split()
n = n[::-1]
arr = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'
res = 0
for i, num in enumerate(n):
    res += ((int(b)**i) * (arr.index(num)))
print(res)

 

 

 

  • cf) 문자열로만 arr 만든 후 index + 10
n, b = input().split()
n = n[::-1]
arr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
res = 0
for i, num in enumerate(n):
    res += ((int(b)**i) * (arr.index(num)+10))
print(res)

 

 

-> 런타임 에러로 통과 x 

 

 

 

 

 

 

 

https://junsangkwon.tistory.com/51?category=825948

 

파이썬 n진수 변환 구현하기

파이썬에서 주어지는 내장 함수를 사용하지 않고 직접 10진수 -> n진수, n진수 -> 10진수로 변환하는 코드를 작성하겠습니다. 10진수 -> N진수 변환 n_dic1 = { 0: '0', 1: '1', 2: '2', 3: '3', 4: '4', 5: '5', 6: '6',

junsangkwon.tistory.com

https://growingarchive.tistory.com/208

 

[백준/파이썬] 2745. 진법 변환

문제 B진법 수 N이 주어진다. 이 수를 10진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문

growingarchive.tistory.com

https://velog.io/@yje876/python%EB%B0%B1%EC%A4%80-2745-%EC%A7%84%EB%B2%95-%EB%B3%80%ED%99%98

 

[python/백준] 2745: 진법 변환

진법변환 재밌다.

velog.io

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다!