문제

문제 보러가기
2745번: 진법 변환
B진법 수 N이 주어진다. 이 수를 10진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를
www.acmicpc.net
입출력
입력 | b진법으로 표현된 수 n, 진법b |
출력 | n을 10진수로 표현한 수 |
풀이
n, b = input().split()
b = int(b)
answer = 0
# len(n) = 5인 경우 4 ~ 0까지 반복
for i in range(len(n)-1, -1, -1):
# 아스키코드를 사용해 현재 문자가 숫자가 아닌 경우 경우 문자 -> 숫자 변환
if ord(n[i]) >= 65:
tmp = ord(n[i]) % 65 +10
else: tmp = n[i]
tmp = int(tmp)
# 글자의 위치와 제곱할 수는 반비례
# 3글자 n일 때 맨 오른쪽 글자인 경우, n[2]일때 제곱할 수 0 -> n[1]일때 1 -> n[0]일때 2
mid_tmp = b**(len(n)-i-1)
answer += mid_tmp * tmp
print(answer)
1) b진법으로 이뤄진 수 n과, 진법 n
2) n을 오른쪽부터 한글자씩 계산한다.
2.1) 만약 A~Z로 이뤄진 글자라면 숫자로 변환한다. 이는 아스키코드를 사용해 확인한다.
(변환 A: 10 ~ Z: 35)
3) (진법 ** 자릿수 * 해당 자리 숫자)계산방법으로 모든 b진법내의 숫자를 계산에 answer에 더한다.
3.1) 문자열의 자릿수롸 진법의자릿수는 반비례관계이다.
표로 정리해 참고해보면 아래와 같다.👇

'CODING TEST > Beakjoon' 카테고리의 다른 글
[백준 / 파이썬 / 11005] 진법 변환2 (0) | 2023.10.27 |
---|---|
[백준 / 파이썬 / 2720] 세탁소 사장 동혁 (파이썬 잔돈, 거스름돈 계산) (0) | 2023.10.27 |
[백준 / python / 10798] 세로읽기 (1) | 2023.10.24 |
[백준 / python / 2563] 색종이 (0) | 2023.10.22 |
[백준 / python / 2566] 최댓값 (0) | 2023.10.21 |
문제

문제 보러가기
2745번: 진법 변환
B진법 수 N이 주어진다. 이 수를 10진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를
www.acmicpc.net
입출력
입력 | b진법으로 표현된 수 n, 진법b |
출력 | n을 10진수로 표현한 수 |
풀이
n, b = input().split()
b = int(b)
answer = 0
# len(n) = 5인 경우 4 ~ 0까지 반복
for i in range(len(n)-1, -1, -1):
# 아스키코드를 사용해 현재 문자가 숫자가 아닌 경우 경우 문자 -> 숫자 변환
if ord(n[i]) >= 65:
tmp = ord(n[i]) % 65 +10
else: tmp = n[i]
tmp = int(tmp)
# 글자의 위치와 제곱할 수는 반비례
# 3글자 n일 때 맨 오른쪽 글자인 경우, n[2]일때 제곱할 수 0 -> n[1]일때 1 -> n[0]일때 2
mid_tmp = b**(len(n)-i-1)
answer += mid_tmp * tmp
print(answer)
1) b진법으로 이뤄진 수 n과, 진법 n
2) n을 오른쪽부터 한글자씩 계산한다.
2.1) 만약 A~Z로 이뤄진 글자라면 숫자로 변환한다. 이는 아스키코드를 사용해 확인한다.
(변환 A: 10 ~ Z: 35)
3) (진법 ** 자릿수 * 해당 자리 숫자)계산방법으로 모든 b진법내의 숫자를 계산에 answer에 더한다.
3.1) 문자열의 자릿수롸 진법의자릿수는 반비례관계이다.
표로 정리해 참고해보면 아래와 같다.👇

'CODING TEST > Beakjoon' 카테고리의 다른 글
[백준 / 파이썬 / 11005] 진법 변환2 (0) | 2023.10.27 |
---|---|
[백준 / 파이썬 / 2720] 세탁소 사장 동혁 (파이썬 잔돈, 거스름돈 계산) (0) | 2023.10.27 |
[백준 / python / 10798] 세로읽기 (1) | 2023.10.24 |
[백준 / python / 2563] 색종이 (0) | 2023.10.22 |
[백준 / python / 2566] 최댓값 (0) | 2023.10.21 |