Algorithm/문제
[백준 온라인 저지] 진법 변환
Lim Seung Hyun
2021. 12. 30. 22:40
문제 링크
문제 내용
나의 풀이 및 설명 (With Python3)
문제 링크
2745번: 진법 변환
B진법 수 N이 주어진다. 이 수를 10진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를
www.acmicpc.net
문제 내용
- B진법 수 N을 주었을 때, 10진법으로 바꿔 출력하는 프로그램 작성
- 10진법을 넘어가는 진법에서 숫자로 표시할 수 없는 경우 알바펫 대문자를 사용하여 대체
- A : 10, B : 11, C : 12, .... , Y : 34, Z : 35
- 입력
- N, B가 한 줄로 제공
- 출력
- 10진법 결과
나의 풀이 및 설명 (With Python3)
# source : https://www.acmicpc.net/problem/2745
import sys
N, B = sys.stdin.readline().strip().split(" ")
answer = 0
for index, value in enumerate(N):
exp = len(N) - index - 1
if value.isalpha():
num = ord(value) - 55 # ord(문자) : 문자를 ascii code로 변환 -> 문자를 숫자로 변환하기 위함
else:
num = int(value)
answer += num * int(B)**exp
print(answer)
- for 문에 enumerate(N)을 해줌으로써 인덱스와 값을 가져오도록 했다.
- str.isalpha() 을 이용하여 값이 알파벳인지 확인하였고, ord(char)을 이용해 ascii code로 변환하여 사용하였다.
- ord("A") = 65 이기 때문에 55를 빼주었다.
Github : https://github.com/Limseunghyun95/Algorithm_study/blob/master/baekjoon/p_2745.py
GitHub - Limseunghyun95/Algorithm_study: 코딩 테스트 연습 공간
코딩 테스트 연습 공간. Contribute to Limseunghyun95/Algorithm_study development by creating an account on GitHub.
github.com
728x90