A×B를 계산하다 지겨워진 형택이는 A×B를 새로운 방법으로 정의하려고 한다.
A에서 한 자리를 뽑고 × B에서 임의로 한 자리를 뽑아 곱한다.
의 가능한 모든 조합 (A가 n자리, B가 m자리 수라면 총 가능한 조합은 n×m개)을 더한 수로 정의하려고 한다.
예를 들어 121×34는
1×3 + 1×4 + 2×3 + 2×4 + 1×3 + 1×4 = 28
이 된다. 이러한 형택이의 곱셈 결과를 구하는 프로그램을 작성하시오.
처음에는 문제 그대로 풀었는데 시간 초과가 나왔다. 그래서 풀이를 검색해 봤는데 문제대로 풀 필요가 없었다. 위의 식을 정리하면
1×3 + 1×4 + 2×3 + 2×4 + 1×3 + 1×4 = 28
3(1+2+3) + 4(1+2+3) = 28
(1+2+3) * (3+4) = 28
이렇게 된다. 숫자의 각 자리수에 해당하는 수를 더한 두 값을 곱하면 쉽게 풀 수 있다.
import sys
def input():
return sys.stdin.readline().rstrip()
a, b = input().split()
a = list(map(int, a))
b = list(map(int, b))
print(sum(a) * sum(b))