본문 바로가기
프로그래밍/Python

[python][BOJ1225] 이상한 곱셈

by 김아잉 2023. 2. 13.
728x90

https://www.acmicpc.net/problem/1225

 

1225번: 이상한 곱셈

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

www.acmicpc.net

 

 

조금만 머리를 굴리면 풀 수 있다. 인수정리를 통해서 121*34를 표현하면 1*(3+4) + 2*(3+4) + 1*(3+4) = (1+2+1)*(3+4)로 표현할 수 있다. 시간제한이 2초라서 뇌빼고 2중 for문을 돌려도 O(n^2)의 시간복잡도를 가져 시간 초과가 날 것이므로

O(2n)의 시간복잡도를 가지는 위의 계산만이 통과할 것이다.

 

코드는 아래에 있다.

더보기
a,b=input().split()
s1=0
s2=0
for i in a:
    s1+=int(i)
for i in b:
    s2+=int(i)
print(s1*s2)

728x90

댓글