
문제
코드트리 | 코딩테스트 준비를 위한 알고리즘 정석
국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.
www.codetree.ai
실행 결과

코드(Python)
input_str = input().split(" ")
a, b = int(input_str[0]), int(input_str[1])
n = int(input())
# n을 10진수로 변환
aa = 0
power = 1
while n > 0:
aa += (n % 10) * power
n //= 10
power *= a
# 10진수 값을 b진법으로 변환
b_digits = []
while aa > 0:
b_digits.append(aa % b)
aa //= b
# b진법으로 변환한 결과 출력
for i in b_digits[::-1]:
print(i, end="")
코드 설명
a진수로 표현된 n을 b진수로 변환한다!
이해를 돕기 위해 아래 예시 및 그림을 첨부한다.
ex. 8진수로 표현된 11이라는 숫자 11을 2진수로 바꾸려면?
1. a진수로 표현된 수를 10진수로 변환한다.
바꿀 수를 저장할 변수 aa와 거듭제곱을 계산할 power 변수를 선언한다.
일의자리부터 power을 거듭제곱하여 해당 자릿수와 곱한다.

2. 10진수로 변환한 aa를 다시 b진수로 변환한다.
b_digits를 b로 나누면서 나머지를 배열에 저장한다.
출력할 때는 저장한 순서의 거꾸로 출력하기 위해 ::-1을 사용한다.

'PS' 카테고리의 다른 글
[코드트리] 2차원 배열과 패턴: 격자 반대로 채우기 (0) | 2024.07.13 |
---|---|
[코드트리] 2차원 배열과 패턴 / 지그재그로 숫자 채우기 (0) | 2024.07.10 |
[코드트리] Date to Date (0) | 2024.06.20 |
[코드트리] 객체 정렬 / 정렬된 숫자 위치 알아내기 (0) | 2024.06.19 |
코드트리: a/b 출력 응용 (0) | 2024.06.15 |