■ 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
'코딩 테스트 > Python_백준' 카테고리의 다른 글
[백준/Python] 2903번 중앙 이동 알고리즘 문제 (0) | 2023.04.08 |
---|---|
[백준/Python] 2720번 세탁소 사장 동혁 문제 (0) | 2023.04.07 |
[백준/Python] 2745번 진법 변환 문제 (0) | 2023.04.05 |
[백준/Python] 2563번 색종이 문제 (0) | 2023.04.04 |
[백준/Python] 10798번 세로읽기 (0) | 2023.04.03 |
댓글