#문제링크
https://www.acmicpc.net/problem/11005
11005번: 진법 변환 2
10진법 수 N이 주어진다. 이 수를 B진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를
www.acmicpc.net
#나의풀이
import sys
if __name__ == '__main__':
number, b = map(int, sys.stdin.readline().split())
value = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'
result = ''
while number > 0:
result += value[number % b]
number //= b
result = result[::-1]
print(result)
#해설
숫자 주어지고 주어지는 진법으로 변환시키는 문제
value는 숫자를 진법으로 나눴을때 나머지를 인덱스로 해서 값을 찾을용도로 만들었다.
숫자가 0보다 작아질때까지 반복문을 돌게되고 숫자를 진법으로 나누게 되고 나온 나머지를 value에 인덱스로 값을 찾아 result에 넣게 된다 이후 number값을 나눈 값으로 바꿔준다.
반복문이 다 돌았다면 진법 계산할때 거꾸로 계산하므로 reverse시켜 출력시켜준다
'코딩테스트' 카테고리의 다른 글
[프로그래머스/LEVEL 1/파이썬] 숫자 문자열과 영단어 (0) | 2022.06.19 |
---|---|
[프로그래머스/LEVEL 1/파이썬] 다트게임 (0) | 2022.06.19 |
[백준/파이썬] 2745 진법 변환 (0) | 2022.06.17 |
[백준/파이썬] 16506 CPU (0) | 2022.06.16 |
[백준/파이썬] 3568 iSharp (0) | 2022.06.16 |