https://www.acmicpc.net/problem/2745
문제
접근법
1. 입력받은 N의 끝부분부터 역으로 출력
2. 해당 부분이 숫자인지 문자인지 확인
3. 숫자는 int형으로 변환, 문자는 아스키코드 변환 후 A=10이 나오게 숫자 조정
(A의 아스키 코드는 65, 문제에서 A는 10을 필요로 하므로 55를 빼기)
4. 진법변환 공식을 통해 순차적으로 제곱하며 곱해주고 ans에 더하기
코드
N,B=input().split()
B=int(B)
ans=0
for i in range(len(N)-1,-1,-1):
if '0'<=N[i] and N[i]<='9':
_=int(N[i])
else:
_=ord(N[i])-55
ans+=B**(len(N)-1-i)*_
print(ans)
'코딩테스트 준비 > 백준' 카테고리의 다른 글
[백준] 11653번 소인수분해 - 파이썬(Python) (0) | 2021.09.06 |
---|---|
[백준] 11576번 Base Conversion - 파이썬(Python) (0) | 2021.09.01 |
[백준] 11005번 진법 변환 2 - 파이썬(Python) (0) | 2021.08.30 |
[백준] 17103번 골드바흐 파티션 - 파이썬(Python) (1) | 2021.08.30 |
[백준] 2089번 -2진수 - 파이썬(Python) (0) | 2021.08.27 |