곱셈(2588번)

PearLine_Zero·2024년 3월 11일

하루에 1커밋 CodingTest

목록 보기
10/110
post-thumbnail
  • 티어 : Bronze 3
  • 정답여부 : 정답
  • 알고리즘 유형 : 수학, 사칙연산
  • 시간 제한 : 1초

💡문제

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

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

💡입력

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

💡출력

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

💡예제 입력 1

472
385

💡예제 출력 1

2360
3776
1416
181720

💡문제요약

세자리 자연수를 곱하실 첫번째 줄은 일의자리 두번째 줄은 십의자리 세번째 줄은 백의 자리와 곱한수를 작성한 후 마지막에 두 수의 곱한수의 결과값을 나타내면 됨.

💡알고리즘 설계

✍️ 파이썬 슬라이싱(Slicing) 이란?

슬라이싱은 리스트나 문자열 등의 연속적인 객체들의 범위를 지정해서 객체를 가져오는 방법

lst[start:end:step]
  • start : 슬라이싱을 시작할 시작 위치
  • end : 슬라이싱을 끝낼 위치로 end 값을 포함하지 않고 end-1 까지의 값을 포함한다
  • step : 슬라이싱 할 단위를 지정하며 생략할 경우 1단위가 된다.
  1. a에 int형식으로 입력한 값을 넣어주고 b에는 문자열 형식으로 넣어줌. (input()을 하면 python 자동적으로 문자열로 인식함)
  2. b의 문자형 값으로 숫자를 받은 후 슬라이싱 기법으로 위치를 찾아서 그 문자를 int형식으로 바꾸어 계산

💡작성코드

  • python
a = int(input())
b = input()
print(a * int(b[2]))
print(a * int(b[1]))
print(a * int(b[0]))
print(a * int(b))

💡틀린 이유 or 수정할 부분

여러가지 방법이 있는데 JAVA랑 비슷한 풀이코드를 가져옴 나머지를 이용하여 구하는 방식

💡틀린 부분 수정 or 다른풀이

  • python
num1 = int(input())
num2 = int(input())
print(num1 * (num2%10))
print(num1 * ((num2%100)//10))
print(num1 * (num2//100))
print(num1 * num2)

💡느낀점 or 기억할 정보

슬라이싱기법은 문자열과 리스트만 사용이 가능!

profile
https://baesaa0304.tistory.com 블로그 이사합니다~

0개의 댓글