study gomi

[백준/baekjoon] 2745번 진법 변환 python(파이썬) 본문

Practice/Baekjoon

[백준/baekjoon] 2745번 진법 변환 python(파이썬)

공부하곰 2023. 12. 28. 23:10
728x90
반응형

내 제출

# B진법 수 N -> 10진법 수 M으로 출력
# A:10, B:11 ~ Y:34, Z:35

# N과 B가 주어진다
n, b = input().split()
b = int(b)

# 출력할 숫자
M = 0

# b의 n_len승을 할 건데 b의 0승부터 곱해줘야 하니까 -1
n_len = len(n) - 1

for alphabet in n:
	# 해당 문자가 숫자가 아니라 'A'~'Z'라면
    if ord(alphabet) >= 65:
        M += ((ord(alphabet) - ord('A')) + 10) * (b ** n_len)
    else:
        M += (ord(alphabet) - ord('0')) * (b ** n_len)
    n_len -= 1

print(M)

 

코드 작성 중 문제

* c++이랑 다르게 문자에서 바로 숫자/문자를 뺄 수가 없었음. 

 

공부한 것

- 파이썬에서 아스키코드 활용하기 : 문자 ↔ 아스키코드

a = 'A'
b = 97

# 아스키 코드 -> 문자
chr(b)

# 문자 -> 아스키 코드
ord(a)

 

결과

 

 

https://www.acmicpc.net/problem/2745

 

728x90
반응형