Learn to share,Share to learn
2745 파이썬 - 지수연산자 본문
Char = [A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z]
N,B=input().split()
B = int(B)
sum = 0
leng=len(N)
for i in range(leng::-1):
sum = (B^i)
if (N[i] in Char):
sum = sum + 10+ Char.index(i)
else
sum = sum+N[i]
print(sum)
브레인 스토밍
Char = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']
N, B = input().split()
B = int(B)
total_sum = 0
for i in range(len(N)):
if N[i] in Char:
num = 10 + Char.index(N[i])
else:
num = int(N[i])
total_sum += num * (B ** (len(N) - i - 1))
print(total_sum)
실제 작성 코드
코드 수정 과정
- 지수 연산자 수정: B^i 대신 B ** i를 사용해야 한다. ^는 XOR 비트 연산자. 지수 연산에는 **를 사용
- 문자를 숫자로 변환: 10 + Char.index(i)는 i가 아닌 N[i]에 대해 적용되어야 한다.
- 숫자 문자열을 숫자로 변환: N[i]가 숫자인 경우, 정수로 변환하기 위해 int(N[i])를 사용해야 한다.
- 누적 합계 계산: 현재 코드는 sum을 각 반복마다 새로 계산하는데, sum은 각 자리값을 계산한 후, 누적해서 더해야 한다.
'알고리즘' 카테고리의 다른 글
특정값 존재여부 비교 - list와 set를 중심으로 (0) | 2024.01.17 |
---|---|
14052 파이썬 (0) | 2024.01.16 |
14888 파이썬 - 무한으로 최대값 설정하기, 순열 (0) | 2024.01.16 |
파이썬 알고리즘 팁 정리 (1) | 2024.01.10 |
알고리즘 정리 (0) | 2024.01.09 |