언젠가는

(파이썬) 백준 11005번 진법 변환 2 본문

IT/코딩

(파이썬) 백준 11005번 진법 변환 2

new1life 2022. 8. 13. 12:17

백준 11005번 문제
풀이

1.
변수 a에 0부터 Z를 문자열로 만들어 준다. 인덱스를 가지고 값을 구할 것이다.
문제에서 11부터는 A라고 하기로 했고, 36진법이 최대라고 한정해 주었다.
a[0]=0, a[35]='Z'이다.
 
a = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
 
2.
b에는 10진수의 수를, c에는 바꿀 진법의 수가 입력된다.
b, c = map(int,input().split())
 
3.
ans변수를 문자열로 만들어 놓고 넣어줄 것이다.
ans=''
 
4.
b를 계속 쪼갤 것이다. 2진법을 구할 때, 2로 계속 나눈 값의 나머지로 2진법 변환이 가능한 것을 생각하면 된다.
예시 입력의 36을 보면, 36으로 나눠 주면서 나머지는 저장하고, 몫은 더이상 나줘지지 않을 때까지 계속 나눠준다.
while b!=0:
  ans+=a[b%c]
  b//=c
5.
2진법을 구할 때 생각하보면 가장 마지막 값이 첫번째 온다. 우리는 문자열 변수에 반대로 집어넣었으니까 반대로 출력해야 한다.
print(ans[::-1])
Comments