백준 22193번 문제 링크
문제 이름 : Multiply
주 언어 : Python
태그 : 수학 / 사칙연산 / 임의 정밀도 & 큰 수 연산
solved.ac 등급 : Bronze V (2023/05/25 확인)
문제 보기
문제 :
Write a program that computes a product of two non-negative integers A and B. The integers are represented in decimal notation and have N and M digits, respectively.
(축약 & 번역) A와 B가 주어지는데, A와 B의 곱을 구하세요.
입력 :
The first line contains the lengths N and M, separated by a space. A is given on the second and B on the third line. The numbers will not have leading zeros.
(축약 & 번역) 첫 줄에는 A의 길이와 B의 길이, 두 번째 줄에는 A, 세 번째 줄에는 B가 주어집니다. A, B의 길이는 최대 50000입니다.
출력 :
Output the product of A and B without leading zeros.
(축약 & 번역) A와 B의 곱을 구하세요.
(해당 글은 파이썬으로 풀 경우를 상정한 경우입니다. C나 C++ 계열인 경우 풀이가 아득해집니다.)
백준 13277번 - 큰 수 곱셈 처럼 풀 수 있습니다.
파이썬에서 int 형의 길이는 그닥 중요하지 않으니 첫 줄은 무시하고, 두 번째 줄의 A와 세 번째 줄의 B를 곱해줍니다.
그냥 input() 이라고만 쓰면 첫 줄의 A의 길이와 B의 길이는 입력되어서 사라집니다.
C, C++ 같은 BigInt가 안되는 언어들은...그런 언어에서는 이 문제는 브론즈 문제가 아닙니다.
15576번, 22289번 같은 문제들이 그런 언어들로 두 수를 곱하는 문제인데, 다른걸 아무것도 안하는데 오직 곱셈만으로 플레티넘 I 이라는 난이도입니다.
궁금하신 분들은 FFT 곱셈 같은 키워드를 검색해보시기 바랍니다.
이 문제는 30만이나 100만까지의 길이는 가지 않고 5만에서 멈추니 카라추바 곱셈으로도 가능할 수 있습니다.
-번째 푼 문제 (2022/--/--)