본문 바로가기
코딩 테스트/Python_백준

[백준/Python] 11005번 진법 변환2 문제

by 모두의 케빈 2023. 4. 6.

■ 11005번 진법 변환2 문제

 

출처: 백준 11005번 진법 변환 2 문제

■ 코드 풀이

 

코드 설명에 앞서, 진법 변환에 대해 잘 모르시는 분들께서는 아래 잘 설명된 글이 있으니 먼저 확인해 주시고 오시면 도움이 되실 것 같습니다.

진법 변환에 대해 이해하셨다면, 코드 자체는 단순합니다. 입력받은 10진법의 수를 변경하고자 하는 진법 수로 나눕니다. 나눈 나머지는 result에 string type으로 저장하고 나눈 몫을 입력받은 값 N에 덮어씁니다. 이 과정을 N이 진법 수 보다 작거나 같을 때 가지 반복해 주면 됩니다.

주의할 점은 while문이 종료된 이후 진법 수 보다 작아진 N을 result에 추가로 더해줘야 한다는 점과  result 결과를 역순으로 출력해줘야 한다는 점이겠네요.

 

N,B = list(map(int, input().split()))

alphabet_list = list('0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ')
num_list = list(range(36))

result = ''

while N >= B:
    idx = N % B 

    alphabet_idx = num_list.index(idx) 
    result += alphabet_list[alphabet_idx] 

    N = N // B


alphabet_idx = num_list.index(N)
result += alphabet_list[alphabet_idx]

print(result[::-1])

 

참고: 진법 변환 https://meaningone.tistory.com/606

 

10진수를 2진수로 변환, 2진수를 10진수로 변환 이렇게!

10진법으로 수를 나타낸 것이 10진수이고, 2진법으로 수를 나타낸 것이 2진수 입니다. 우리가 일상생활에서 사용하는 수는 10진수 입니다. 10진수를 2진수로 변환하는 법을 설명하고자 합니다. 먼

meaningone.tistory.com

 

댓글