반응형

문제

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

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

 

입력

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

 

조건

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

 

예제 입력

472
385

예제 출력

2360
3776
1416
181720

 

문제 풀이

A = int(input())
B = input()

BList=list(B)
BList.reverse()

for i in range(3):
    print(A * int(BList[i]))
print(A*int(B))

input을 사용해 입력을 하게되면 항상 문자열로 입력이 됩니다. 때문에 A는 int를 미리 적용시켜주었습니다. 하지만 B를 자리수로 나눠 넣기 위해서는 문자열이어야 함으로 int를 적용시키지 않았습니다.

 

for를 통해 앞 번호부터 곱셈을 진행하므로 리스트를 뒤집어 주었습니다.

BList = ["3", "8", "5"]
BList.reverse()
BList = ["5", "8", "3"]

이를 통해 (3), (4), (5)를 차례로 출력하고 전체 곱인 (6)을 출력했습니다. 다른 방법으로 reverse를 사용하지 않고 BList[3-i]로 구현할 수도 있습니다.

 

이해가 되지 않는 부분은 댓글 남겨주시면 답변해드리겠습니다 :)

 

문제 페이지

https://www.acmicpc.net/problem/2588

 

2588번: 곱셈

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

www.acmicpc.net

 

반응형