Learn to share,Share to learn

2745 파이썬 - 지수연산자 본문

알고리즘

2745 파이썬 - 지수연산자

Rogue One 2024. 1. 10. 18:13
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)

실제 작성 코드

 

코드 수정 과정

  1. 지수 연산자 수정: B^i 대신 B ** i를 사용해야 한다.  ^는 XOR 비트 연산자. 지수 연산에는 **를 사용
  2. 문자를 숫자로 변환: 10 + Char.index(i)는 i가 아닌 N[i]에 대해 적용되어야 한다.
  3. 숫자 문자열을 숫자로 변환: N[i]가 숫자인 경우, 정수로 변환하기 위해 int(N[i])를 사용해야 한다.
  4. 누적 합계 계산: 현재 코드는 sum을 각 반복마다 새로 계산하는데, sum은 각 자리값을 계산한 후, 누적해서 더해야 한다.