백준 문제풀이/수학

[백준] 11005 진법 변환2 -phyton

peach_h 2022. 11. 10. 17:14

참고한 블로그 : https://velog.io/@wlrhkd49/%EB%B0%B1%EC%A4%80-11005-%EC%A7%84%EB%B2%95-%EB%B3%80%ED%99%98-2-Python

[백준] 11005: 진법 변환 2 (Python)

진법의 index를 알기위한 arr (string)을 정의한다. (36진법 이하)N이 0이 될 때까지 s라는 string에 arr\[N%B]가 의미하는 나머지 문자를 추가하고 N을 N//B로 초기화한다.s를 뒤집어서 출력한다.

velog.io


https://www.acmicpc.net/problem/11005

11005번: 진법 변환 2

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

www.acmicpc.net


b진법 변환 -> 더 안나눠질 때까지 b로 계속 나눈 뒤 나머지를 저장
a를 b로 나눈 나머지의 자리에 위치한 값을 계속 가져온다 !
남은 걸로 계속 나누고 x에 넣고 반복
but ) 몫들의 순서 거꾸로 뒤집어야함 !!
그래서 [::-1] 해줘야한다

a, b =  map(int,input().split())
x = ''
  
arr = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'        

while a:
    x += str(arr[a%b])
    a //= b

print(x[::-1])