[백준] 1225번: 이상한 곱셈

hyunhee·2022년 6월 3일
0

algorithm

목록 보기
13/24

문제

문제

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))

0개의 댓글