문제 : 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)
'Problem Solving > boj.kr (Python)' 카테고리의 다른 글
[BOJ / 자바스크립트] 9498 : 시험 성적 (2) | 2022.02.04 |
---|---|
[BOJ / 파이썬] 1330 : 두 수 비교하기 (0) | 2022.02.04 |
[BOJ / 파이썬] 10430 나머지 (0) | 2022.02.04 |
[BOJ / 파이썬] 10869 사칙연산 (0) | 2022.02.04 |
[BOJ / 파이썬] 1008 A/B (0) | 2022.02.03 |
댓글