-
『Python』백준 2588BackEnd/Python 2022. 1. 18. 13:32
Olympiad > 한국정보올림피아드 > 한국정보올림피아드시․도지역본선 > 지역본선 2005 > 초등부 2번
의 문제라고 한다....요즘 초딩들 똑똑하다..내게는 너무 어려웠다...ㅠㅠㅠ
문제는 다음과 같다.
문제
(세 자리 수) × (세 자리 수)는 다음과 같은 과정을 통하여 이루어진다.
(1)과 (2)위치에 들어갈 세 자리 자연수가 주어질 때 (3), (4), (5), (6)위치에 들어갈 값을 구하는 프로그램을 작성하시오.
해설의 출처
사진 및 문제의 출처는 아래와 같다.
https://www.acmicpc.net/problem/2588
2588번: 곱셈
첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출력한다.
www.acmicpc.net
블로그 보고 풀었으니 블로그에서 설명한 말을 간단하게 풀이해서 적도록 하겠다.
아래는 보고 푼 블로그의 출처이다. 감사합니다!!
https://goplanit.site/07.%20Algorithm(2588_py)/
<알고리즘> 백준 2588번 곱셈(파이썬)
백준 #2588 문제 바로가기 문제 : (세 자리 수) × (세 자리 수)는 다음과 같은 과정을 통하여 이루어진다. (1)과 (2)위치에 들어갈 세 자리 자연수가 주어질 때 (3), (4), (5), (6)위치에 들어갈 값을 구하
goplanit.site
코드
a = int(input()) b = int(input()) print (a * (b%10)) print (a * ((b%100)//10)) print (a * (b//100)) print (a * b)
위와 같은 방법을 채택하였다.
해설
우선 예시를 들고 진행하도록 하겠다.
a를 137이라고 하고
b는 238이라고 하자
그리고 문제의 (3)을 첫번째 줄
문제의 (4)를 두번째 줄
문제의 (5)를 세번째 줄로 생각하고
문제의 (6)을 네번째 줄로 생각을 한다고 가정하에 해설을 하도록 하겠다.
첫번째 줄
print (a * (b%10))
a에 곱한다.
무엇을? b를 10으로 나누고 남은 나머지를 a에다가 곱한다.
b를 238이라고 지정했으니 10으로 나누면 23.8 이고 나머지는 8이니까 8을 곱한다는 뜻이다.
결국 137 X 8 이 된다.
그러면 첫번째 줄이 해결이 된다.
두번째 줄
print (a * ((b%100)//10))
a에다가 곱한다.
무엇을? b를 100으로 나누고 남은 나머지를 10으로 나눈 값의 몫을
b를 238이라고 했으니 100으로 나누고 남은 결과는 2.38이고 여기서 나머지는 38이고
여기서 나머지를 10으로 나눈값은 3.8이고 여기의 몫은 3이다.
결국 137 X 3 이된다.
그러면 두번째 줄도 해결이 된다.
세번째 줄
print (a * (b//100))
a에다가 곱한다.
무엇을? b를 100으로 나눈 값의 몫을 곱한다.
b를 238이라고 했으니 100으로 나누면 2.38이 되고 여기서 몫은 2이기 때문에
결국 137 X 2 가 된다.
그러면 세번째 줄도 해결이 된다.
네번째 줄
print (a * b)
말 그대로 a와 b를 곱한 값을 출력한다.
위에서는 표기를 위해서 %와 //를 사용했지만 여기는 결과 값만 출력하면 되기 때문에 이렇게 출력한다.
계산기
본인이 나누기 및 나머지를 구하기 힘들다면
OS에 내장된 계산기와 아래의 나머지 계산기를 사용하도록 하자
http://mwultong.blogspot.com/2007/12/remainder-calc.html
나누기 계산기; 나눗셈의 몫 나머지 값 구하기; Remainder Calc
mwultong.blogspot.com
후기
문제 자체는 어렵지 않았는데 내 수학 능력이 너무 딸렸다...ㅋㅋㅋㅋ 열심히 해야지!