본문 바로가기
파이썬/BOJ_입출력과 사칙연산

[백준 2588 파이썬] 곱셈

by 쉽게사는방법 2022. 12. 23.
반응형

[백준 2588 파이썬] 곱셈

 

안녕하세요.

 

이번 문제는 곱셈이네요. 사칙연산을 반복하다 보니 이제 슬슬 지루하실 수도 있겠네요.

하지만 비슷해 보이는 변형에도 함정이 숨어있을 수 있으니 다양한 문제를 풀어보면 실력 향상에 도움이 되겠죠!

 

백준 2588 곱셈 문제
백준 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 으로 테스트 해보겠습니다.

이제 한줄한줄 의미가 이해가 되시죠? 수식이 길어져도 이해하기 쉬운게 더 좋을 수 있는 것 같습니다.

코드 실행화면
코드 실행화면

일단 문제에서 제시한 숫자와 같은 숫자가 나왔네요!

제출 결과
제출 결과

제출 결과 역시 정답이네요! 짝짝짝!

 

이만 마치도록 하겠습니다.

읽어주셔서 감사합니다.

반응형

댓글