본문 바로가기

알고리즘 공부/백준 > Python3

[백준 파이썬] #1225: 이상한 곱셈

www.acmicpc.net/problem/1225

 

1225번: 이상한 곱셈

첫째 줄에 A와 B가 주어진다. 주어지는 두 수는 모두 10,000자리를 넘지 않는다.

www.acmicpc.net

 

[오답1] → 시간초과

 

[오답2] → 시간초과

 

쉬운 문제라고 생각하고 풀었는데 계속 시간 초과가 나와서 당황스러웠다,,

 


 

[정답]

 

1. 두 수를 입력받아 list형태로 A,B를 정의한다. ex) A=['1','2','3'], B=['4','5']

2. A와 B, 리스트의 문자열을 int형태로 변환해준다. ex) A=[1,2,3], B=[4,5]

3. A의 sum과 B의 sum을 곱하여 출력한다.

 

3번 부분을 생각해내어 문제를 다시 풀었더니 시간초과가 나지 않았다.

 

- 시간초과가 난 오답의 경우, 123 45를 문자열로 받아 이중 for문을 돌면서 sum에 곱한 값들을 일일히 더해주었다.

ex) 123 45 → 1*4 + 1*5 + 2*4 + 2*5 + 3*4 + 3*5 = 54

- 반면 정답의 경우, 123 45를 리스트형태로 받아 A의 sum과 B의 sum을 구한 뒤 이를 곱해주었다.

ex) 123 45 → (1+2+3) * (4+5)