[BOJ/백준-Python]2588번 - 곱셈

✖ 2588번 - 곱셈

문제

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

image

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

입력

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

출력

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

예제 입력 1

472
385

예제 출력 1

2360
3776
1416
181720

해결할 방법을 생각해보자.💡

먼저 (1)번과 (2)번의 값을 받아야한다.

a = input() # (1)
b = input() # (2)

평상시 같으면 연산을 위해 int()로 정수형으로 변환을 해줘야 하지만 그냥 문자열로 받아놓는다.

그 이유는 문제를 보면 알 수 있다.

  • 첫 번째 출력 : (3)번
    • (1)번에서 받은 세자리 자연수에 (2)번에서 받은 자연수의 1의자리 값을 곱해준 결과다.
    • 즉, 472 * 5의 값을 출력하고 있다.
  • 두 번째 출력 : (4)번
    • (1)번에서 받은 세자리 자연수에 (2)번에서 받은 자연수의 10의자리 값을 곱해준 결과다
    • 즉, 472 * 8의 값을 출력하고 있다.
  • 세 번째 출력 : (5)번
    • (1)번에서 받은 세자리 자연수에 (2)번에서 받은 자연수의 100의자리 값을 곱해준 결과다.
    • 즉, 472 * 3의 값을 출력하고 있다.

이것들을 코드로 표현해보자.

A = int(a)

세자리 자연수를 입력 받았던 (1)은 계속 곱하기 연산에 사용되므로 int()를 사용해 정수형으로 변환해 준다.

다음은 각 자리수의 수를 불러와 곱을 해줘야 하는데, input()으로 값을 받으면 기본적으로 문자열(str)에 해당한다. 따라서 문자열 인덱싱을 통해 각 자리수를 불러올 수 있다.

(3)번을 구하려면 다음과 같이 하면 된다.

cal1 = A * int(b[2])
# 입력받은 (2)의 세 번째에 위치하는 값. 즉, 1의자리 수를 불러와 정수형으로 바꿔 (1)에서 받은 자연수와 곱하자.

(4)번을 구하려면 다음과 같이 하면 된다.

cal2 = A * int(b[1])
# 입력받은 (2)의 두 번째에 위치하는 값. 즉, 10의자리 수를 불러와 정수형으로 바꿔 (1)에서 받은 자연수와 곱하자.

(5)번을 구하려면 다음과 같이 하면 된다.

cal3 = A * int(b[0])
# 입력받은 (2)의 세 번째에 위치하는 값. 즉, 100의자리 수를 불러와 정수형으로 바꿔 (1)에서 받은 자연수와 곱하자.

이제 마지막 6번을 구해보자.

(3), (4), (5)에서 구했던 값들은 각 자리수가 가지고 있는 만을 곱해준 것으로 각 자리수의 크기를 반형해주지 않고 있다. 그래서 10의자리, 100의자리 수를 나타내주는 식이 필요하다.

fin_cal = cal1 + (cal2 * 10) + (cal3 * 100)

이렇게 완성된 변수들을 순서대로 출력하면 문제 해결 완료다.

print(cal1)
print(cal2)
print(cal3)
print(fin_cal)

결과를 확인해보자.

472
385
2360  
3776  
1416  
181720

192
878
1536
1344
1536
168576

코드💻

a = input()
b = input()
A = int(a)

cal1 = A*int(b[2])
cal2 = A*int(b[1])
cal3 = A*int(b[0])
fin_cal = cal1 + (cal2 * 10) + (cal3 * 100)

print(cal1)
print(cal2)
print(cal3)
print(fin_cal)

해결 로그

문제 푼 날짜 체크
2022-02-06
   
   
   
   

2022

[web]jQuery 복습 3

1 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]jQuery 복습 2

13 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]jQuery 복습 1

14 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]JavaScript 정리4

5 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]JavaScript 정리3

10 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]JavaScript 정리2

7 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]JavaScript 정리1

8 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]CSS 기초 정리

11 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]HTML 기초 정리

8 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[Pandas]pandas 연습

3 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

맨 위로 이동 ↑

2021

[Python기초]module

1 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

맨 위로 이동 ↑