[백준 11005번] 진법변환2

2020. 7. 10. 11:05Algorithm/practice

https://www.acmicpc.net/problem/11005

 

11005번: 진법 변환 2

10진법 수 N이 주어진다. 이 수를 B진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 ��

www.acmicpc.net

number, base = map(int, input().split())
baseList = [str(x) for x in range(10)]
if base >= 10:
    for y in range(65, 65+(base-10)):
        baseList.append(chr(y))
newNumber = []
while number > 0:
    newNumber.append(baseList[number % base])
    number = number//base
print(''.join(reversed(newNumber)))

 

사용자에게 입력 받은 진수 base를 기준으로 수를 생성하여 baseList에 저장하였다. 이 반복문을 제거하고 number를 나눌 때 바로 확인하여 newNumber에 추가하는 형태로 바꾸었다.

newNumber를 역순으로 출력하기 위해 사용한 reversed함수를 슬라이싱형태로 바꾸었다. 

number, base = map(int, input().split())
newNumber = []
while number:
    remainder = number % base
    x = str(remainder) if remainder < 10 else chr(65 + (remainder - 10))
    newNumber.append(x)
    number = number//base
print(''.join(newNumber[::-1]))

'Algorithm > practice' 카테고리의 다른 글

[백준 9935번] 문자열폭발  (0) 2021.07.05
[백준 2805번] 나무 자르기  (0) 2020.07.22
[백준 1181번] 단어정렬  (0) 2020.07.09
[백준 2446번] 별찍기-2446  (0) 2020.07.08
[백준 2523번] 별찍기-13  (0) 2020.07.08