[Algorithm] 백준 2588번 곱셈(파이썬)

고플래닛·2021년 6월 24일
0

Algorithm

목록 보기
3/40
post-thumbnail

백준 #2588

문제 바로가기


문제

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

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

입출력 규칙

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

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


문제접근

간단한 사칙연산의 곱셈 문제로 총 3가지 풀이방법을 생각해보았다.

  1. print문에 %(나머지)를 이용하여 바로 출력하는 방법
  2. range 함수를 이용해 마지막부터 첫번째로 출력되게 하는 방법
  3. for문을 이용해 순차적으로 결과값을 list 변수에 담고, 출력하는 방법

문제풀이(Python)

<방법 1>

: 나머지를 구하는 %을 이용하여 값을 바로 출력하는 방법

num1 = int(input())
num2 = int(input())

print(num1 * (num2%10))
print(num1 * ((num2%100)//10))
print(num1 * (num2//100))
print(num1 * num2)

<방법 2>

: range(시작, 마지막, 순서) 함수를 이용해 마지막부터 시작까지 역순으로 출력하는 방법

num1 = int(input())
num2 = input() 

for i in range(len(num2), 0, -1):	
    print(num1 * int(num2[i-1]))

print(num1 * int(num2))

<방법 3>

: 결과값을 list 변수에 담고, 출력하는 방법

num1 = int(input())
num2 = list(map(int, input()))

result = []

for i in range(len(num2), 0, -1):
  result.append(num1 * num2[i-1])

print(result[0], result[1], result[2], sep='\n')
print(result[0]+(result[1]*10)+result[2]*100)

풀이를 통해 배운 것

  • % 사용해 나머지를 구하여 풀이하는 방법에 대하여 자세히 알 수 있었다.
  • range함수를 사용해 쉽게 문제를 접근할 수 있는 방법에 대해 공부할 수 있었다.
profile
blog 이사했습니다. 주소 : https://goplanit.site/

0개의 댓글