반응형
▷ 문제
10진법 수 N이 주어진다. 이 수를 B진법으로 바꿔 출력하는 프로그램을 작성하시오.
10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 사용한다.
A: 10, B: 11, ..., F: 15, ..., Y: 34, Z: 35
▷ 전체 코드
N, B = map(int, input().split())
a = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
b = ""
while N:
b += str(a[N%B])
N //= B
print(b[::-1])
▷ 코드 분석
N, B = map(int, input().split())
변수 N에 10진법의 수를 저장하고, 변수 B에 몇 진법으로 바꿀지 저장한다.
map() 함수를 사용해 지정된 함수를 입력된 요소에 적용한다. int() 함수를 사용해 문자열을 정수형으로 변환한다.
input() 함수를 사용해 입력 받은 요소를 문자열로 변수에 저장한다. split() 함수를 사용해 공백을 기준으로 나눠준다.
a = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
b = ""
변수 a에 큰따옴표 안에 있는 문자를 저장한다.
빈 변수 b를 만든다.
while N:
b += str(a[N%B])
N //= B
while 문을 사용해 반복문을 만든다.
빈 변수 b에 N을 B로 나눈 나머지에 해당하는 a의 인덱스를 str() 함수를 사용해 문자열로 바꿔준다.
N을 B로 나눈 몫을 N에 저장해 B로 나눠준다.
print(b[::-1])
b에 저장된 문자열을 [::-1]을 사용해 뒤집고, print() 함수를 사용해 출력한다.
반응형
'기초 프로그래밍 > Python' 카테고리의 다른 글
[백준] 2903번 파이썬 python(중앙 이동 알고리즘) (0) | 2023.09.21 |
---|---|
[백준] 2720번 파이썬 python(세탁소 사장 동혁) (0) | 2023.09.21 |
[백준] 2745번 파이썬 python(진법 변환) (0) | 2023.09.15 |
[백준] 2563번 파이썬 python(색종이) (0) | 2023.09.15 |
[백준] 10798번 파이썬 python(세로읽기) (1) | 2023.09.14 |