1. 문제 설명

2. 풀이 과정
B진법 수 N이 입력되므로
N, B에 input().split()로 입력받는다.
B는 정수이므로 int(B)으로 정수변환한다.
alpha에 'A'부터'Z'까지의 아스키 코드 값을 10부터 저장할 딕셔너리를 만든다.
십진수값 decimal과 몇 제곱하는지를 표현할 power를 0으로 초기화한다.
역순으로 문자를 순회하기 위해 reversed(N)으로 하고
문자가 isdigit()으로 숫자이면 decimal에 int(char)값에 B**power을 곱해 더한다.
숫자가 아니면 문자이므로 alpha[char]값에 B**power을 곱해 더한다.
power은 1씩 더해주면서 반복문을 진행한다.
for문을 빠져나오면 decimal을 출력한다.
3. 코드
N, B = input().split()
B = int(B)
alpha = {chr(i): i - ord('A') + 10 for i in range(ord('A'), ord('Z') + 1)}
decimal = 0
power = 0
for char in reversed(N):
if char.isdigit():
decimal += int(char) * (B ** power)
else:
decimal += alpha[char] * (B ** power)
power += 1
print(decimal)
4. 다른 코드
N, B = input().split()
B = int(B)
print(int(N, B))
- int()가 내장함수라 바로 10진법으로 계산해주는 기능이 있다고 한다.
'Baekjoon > 단계별로 풀어보기' 카테고리의 다른 글
[백준][8단계 일반 수학 1] 2720번 /세탁소 사장 동혁 (파이썬/Python) (0) | 2025.03.29 |
---|---|
[백준][8단계 일반 수학 1] 11005번 /진법 변환 2 (파이썬/Python) (0) | 2025.03.28 |
[백준][7단계 2차원 배열] 2563번 /색종이 (파이썬/Python) (0) | 2025.03.27 |
[백준][7단계 2차원 배열] 10798번 /세로읽기 (파이썬/Python) (0) | 2025.03.27 |
[백준][7단계 2차원 배열] 2566번 /최댓값 (파이썬/Python) (0) | 2025.03.27 |