https://www.acmicpc.net/problem/14626
*) 올바른 숫자로 출력훼손된 숫자의 위치를 찾고 해당 위치에 0~9까지 수를 모두 집어넣어 위 공식과 맞을 때 수를 출력해주면 됩니다.
weight = [1 if i % 2 == 0 else 3 for i in range(12)]
m)을 제외한 앞의 수들의 가중치damaged = isbn.index('*')
total = 0 # 가중치를 곱한 총합
for i in range(12):
if i == damaged:
continue
total += int(isbn[i]) * weight[i]
for j in range(10): # 0~9
tmp = j * weight[damaged] + total # 숫자 * 가중치 + 총합
m = int(isbn[-1]) # ISBN 마지막 숫자
if (tmp + m) % 10 == 0: # 숫자가 유효하다면
print(j) # 출력
break
import sys
input = sys.stdin.readline
isbn = input().rstrip()
weight = [1 if i % 2 == 0 else 3 for i in range(12)]
damaged = isbn.index('*')
total = 0
for i in range(12):
if i == damaged:
continue
total += int(isbn[i]) * weight[i]
for j in range(10):
tmp = j * weight[damaged] + total
m = int(isbn[-1])
if (tmp + m) % 10 == 0:
print(j)
break