코딩 테스트/백준
[Python] 백준 2745 진법 변환
위시리
2025. 1. 6. 16:22

코드 설계
- 입력 값이 0~9이면 그대로 int형으로 변환
- A ~ Z 이면
정답 코드
1차 - 틀림
import sys
input = sys.stdin.readline
n, b = input().split()
b = int(b)
int_num = [str(i) for i in range(0,10)]
ans = 0
for i in range(len(n)-1, -1, -1) : # len(n)-1 ~ 0
if n[i] in int_num :
ans += int(n[i]) * (b**i)
else :
ans += (ord(n[i])-55) * (b**i)
print(ans)
char.isdigit( )로 문자열의 문자가 숫자인지 확인할 수 있음
for i in range(len(n)-1, -1, -1) :
b에 곱해지는 i 만 역순으로 계산되어야 하는데 위처럼 반복문을 사용하여 n[i]에 대한 인덱스도 역순으로 접근
실패..
gpt
import sys
input = sys.stdin.readline
n, b = input().split()
b = int(b)
ans = 0
for idx, char in enumerate(reversed(n)) : # 문자를 뒤집어서 자릿수 처리
if char.isdigit() :
ans += int(char) * (b ** idx)
else :
ans += (ord(char) - 55) * (b ** idx)
print(ans)