[백준 2588 파이썬] 곱셈
안녕하세요.
이번 문제는 곱셈이네요. 사칙연산을 반복하다 보니 이제 슬슬 지루하실 수도 있겠네요.
하지만 비슷해 보이는 변형에도 함정이 숨어있을 수 있으니 다양한 문제를 풀어보면 실력 향상에 도움이 되겠죠!
문제 분석
문제 부분의 수식은 어디서 많이 본 그림 같네요!
세자리 수 곱셈을 손으로 푸는 과정을 코드로 구현하는 문제라고 생각할 수 있을 것 같습니다.
코드가 조금 길어질 수 있지만, 우리 생각과 코드의 흐름을 맞춰서 진행을 해보는게 이해가 잘 될것 같군요.
문제에서, (1), (2)는 입력을 받고, (3)~(6)은 각각 별도의 변수로 지정해서 출력하는 것이 좋겠네요.
(1) a = 472 (입력)
(2) b = 385 (입력)
(3) c = 472x5 (a x b의 1의 자리 수)
(4) d = 472x8 (a x b의 10의 자리 수)
(5) e = 472x3 (a x b의 100의 자리 수)
(6) f = c+ dx10 + ex100
b의 각 자리수를 분리하려면 어떻게 할까요? 1의 자리수는 b를 10으로 나눈 나머지이죠! (b%10)
10 이상의 자리수는 어떻게 구할까요? 구하고자 하는 자리수를 1의 자리수로 만들어주고 10으로 나눈 나머지를 구해주면 되겠죠!
다시 순서대로 자리수를 구하는 수식을 세워봅시다.
1의 자리수 = b%10
10의 자리수 = (b//10)%10
100의 자리수 = (b//100)%10
괄호 안, '//' 연산자 부분은 n 자리수를 1의 자리로 만들기 위해 10n 으로 나눈 몫을 도출하는 부분입니다.
('//' 연산자는 '사칙연산' 포스팅에서 간단히 살펴봤었죠!)
답안
문제 분석에서 기재한 수식을 Jupyter Notebook 으로 테스트 해보겠습니다.
이제 한줄한줄 의미가 이해가 되시죠? 수식이 길어져도 이해하기 쉬운게 더 좋을 수 있는 것 같습니다.
일단 문제에서 제시한 숫자와 같은 숫자가 나왔네요!
제출 결과 역시 정답이네요! 짝짝짝!
이만 마치도록 하겠습니다.
읽어주셔서 감사합니다.
'파이썬 > BOJ_입출력과 사칙연산' 카테고리의 다른 글
[백준 10172 파이썬] 개 (0) | 2022.12.24 |
---|---|
[백준 10171 파이썬] 고양이 (2) | 2022.12.24 |
[백준 10430 파이썬] 나머지 (0) | 2022.12.22 |
[백준 3003 파이썬] 킹, 퀸, 룩, 비숍, 나이트, 폰 (2) | 2022.12.21 |
[백준 18108 파이썬] 1998년생인 내가 태국에서는 2541년생?! (0) | 2022.12.21 |
댓글