본문 바로가기
Problem Solving/boj.kr (Python)

[BOJ / 파이썬] 2588 곱셈

by hoiiiii 2022. 2. 4.

문제 : https://www.acmicpc.net/problem/2588

 

2588번: 곱셈

첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출력한다.

www.acmicpc.net

 

설명 :

1. 두 입력값을 역순으로 a, b 배열에 저장한다. 

2. digit = a의 자릿수 표시, place_value = b의 자릿수 표시 

3. b의 1의 자리에서 a의 각 자리수를 반복문으로 돌면서 (digit를 10배씩 증가시키면서) 곱셈을 계산. 계산 결과를 tmp에 누적 

4. 모든 계산이 끝나면 tmp 값을 출력후 result에 더해준다.

5. b의 일의 자리 계산이 끝나면 10의 자리 -> 100의 자리에서도 같은 로직을 반복

 

3~5의 과정은 2중 루프로 구현

 

 

Sol) 시간복잡도 : O(N^2)

a = list(map(int,input()))[::-1]
b = list(map(int,input()))[::-1]
place_value = 1
result = 0
for y in b:
    digit = 1
    tmp = 0
    for x in a:
        tmp += x*y*digit
        digit *= 10
    print(tmp)
    result += tmp*place_value
    place_value *= 10
print(result)

 

댓글