[백준>구현>1225] 이상한 곱셈

Woonil·2022년 7월 11일
0

알고리즘

목록 보기
11/25

문제설명

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
이 된다. 이러한 형택이의 곱셈 결과를 구하는 프로그램을 작성하시오.

  • 입력
    첫째 줄에 A와 B가 주어진다. 주어지는 두 수는 모두 10,000자리를 넘지 않는 음이 아닌 정수이다. 수가 0인 경우에는 0만 주어지며, 그 외의 경우 수는 0으로 시작하지 않는다.
  • 출력
    첫째 줄에 A와 B가 주어진다. 주어지는 두 수는 모두 10,000자리를 넘지 않는 음이 아닌 정수이다. 수가 0인 경우에는 0만 주어지며, 그 외의 경우 수는 0으로 시작하지 않는다.

접근

1×3 + 1×4 + 2×3 + 2×4 + 1×3 + 1×4 = 28
(1+2+1)x(3+4) 두 다항식을 곱한 형태로 표현 가능

풀이

def solution():
  a, b = map(int,input().split()) 
  slice_a = []
  slice_b = []
  slice(slice_a, a)
  slice(slice_b, b)
  ans = sum(slice_a) * sum(slice_b)
  return ans

def slice(slice_list, num):
  while num > 0:
    n = num % 10
    slice_list.append(n)
    num //= 10

print(solution()) 

다른 사람의 풀이

num1, num2 = input().split()
num1, num2 = list(map(int, num1)), list(map(int, num2))

print(sum(num1) * sum(num2))

배운점

list(map(int,x)) 사용시 문자열 x의 문자 하나단위로 쪼개져서 list에 저장됨

profile
우니리개발일지

0개의 댓글