공부 기록/Algoritm

[Python] 백준 알고리즘 2588번 : 곱셈

햇살아래 2022. 1. 14. 17:09

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

 

2588번: 곱셈

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

www.acmicpc.net

문제

(세 자리 수) × (세 자리 수)는 다음과 같은 과정을 통하여 이루어진다.

(1)과 (2)위치에 들어갈 세 자리 자연수가 주어질 때 (3), (4), (5), (6)위치에 들어갈 값을 구하는 프로그램을 작성하시오.

입력

첫째 줄에 (1)의 위치에 들어갈 세 자리 자연수가, 둘째 줄에 (2)의 위치에 들어갈 세자리 자연수가 주어진다.

 

출력

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

 

풀이

이번 문제는 나눗셈, 나머지 연산자의 개념이 필요하다.  두 숫사를 사용자로부터 세자리수를 입력받아, 연산 중간결과를 출력하는 문제이다.

1~2라인 : 정수형으로 받기 위해 int()로 감싼 후 input()함수를 통해 사용자로부터 수를 입력받을 수 있다.

4라인 : 문제의 그림 (3)번에 해당하는 출력문이다. (1)과 (2)의 일의 자리 수를 곱하는 부분으로 일의 자리를 구하기 위해서는 num2를 10으로 나눈 나머지 5를 num1과 곱하면 2360이 나온다.

5라인 :  (4)번에 해당하는 출력문으로 (1)과 (2)의 십의 자리수를 곱하는 부분이다. 십의 자리를 구하기 위해 num2를 10으로 나눈 수, 38에서 num2를 100으로 나눈 후 10을 곱하면 30이 나온다. 나온 숫자를 뺀 후 num1과 곱하면 3776이 나온다.

6라인 : (5)번에 해당하는 출력문으로 (1)과 (2)의 백의 자리를 곱하는 부분이다. 비교적 이부분은 간단하다. num2를 100으로 나눈 숫자를 num1과 곱하면 원하는 숫자가 나온다.

7라인 : 마지막으로 num1과 num2의 곱셈값을 출력하면 되므로 두 수를 곱셈해준다.