상세 컨텐츠

본문 제목

[백준/python] 1225 : 이상한 곱셈

코딩테스트/백준

by 기며니 2021. 9. 2. 00:05

본문

728x90
728x90
 

1225번: 이상한 곱셈

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

www.acmicpc.net

 

💚 문제 설명

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자리를 넘지 않는다.

 

💜 출력

첫째 줄에 형택이의 곱셈 결과를 출력한다.

 

🖤 예제

입력 1

123 45

출력 1

54

 

💡 시간 초과 된 내 코드

a,b = input().split()
sum = 0
for i in range(len(a)):
	for j in range(len(b)):
		sum += int(a[i])*int(b[j])
print(sum)

확실히 코드를 짜면서도 for문을 너무 많이 사용하는 것 같아서 효율적이지 못하다고 생각했다.

그래서 뭔가 시간 초과가 날 것 같았더니... 결국 빨간 줄이 생겼다.

 

💡 다시 풀이한 코드

a, b = input().split()
a, b = list(map(int, a)), list(map(int, b))

print(sum(a) * sum(b))

이래저래 고민을 해보다가 다른 분들의 풀이를 보니 일일히 곱해주는 것이 아닌

숫자를 더한 후 곱셈을 하는 방법도 있다는 것을 알게 되었다.

 

 

🙌 후기

문제를 풀이하는데 있어서 늘 하던대로 생각하고 풀이하다보니 그 틀에 갇히는 것 같다는 생각이 들었다.

오랜만에 문제를 풀이하다보니 비교적으로 만만해 보이는 친구를 골랐었는데.. 

다시 천천히 알고리즘 문제를 풀어가며 난이도를 높여야지.. 익숙해지도록 해야겠다.

728x90
728x90

'코딩테스트 > 백준' 카테고리의 다른 글

[백준/Python] 4796 : 캠핑  (0) 2021.10.21
[백준/Python] 2839 : 설탕 배달  (0) 2021.09.15
[백준/Python] 11720 : 숫자의 합  (2) 2021.07.26
[백준/Python] 1547 : 나머지  (0) 2021.07.20
[백준/Python] 14490 : 백대열  (0) 2021.07.12

관련글 더보기

댓글 영역