# 백준 2588 곱셈

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1711973835961/317375b1-f97e-4c94-b294-53d95f34f21b.png align="center")

  
[백준 2588 곱셈](https://www.acmicpc.net/problem/2588)

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1711971405530/0798b2d7-aca6-4bc0-986b-faf639f2868d.png align="center")

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

---

#### 1.처음 문제를 봤을 때 (1)번 값과 (2)번의 자릿수대로 구하는 것을

리스트의 인덱스를 활용하자고 생각 했지만 스스로 코드를 구현하지 못했다.

#### 2\. 다른 사람의 코드를 보고 나서 num2를 문자열을 사용하여 인덱스를 사용하는 것을 생각하지 못했다.

#### 3\. int(num2\[i-1\])의 i-1을 이해하지 못했다.

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

---

num2\[i-1\]은 for range의 len(num2)의 길이를 사용하는데,

num2\[3\], num2\[2\] ... 이런 방식으로 되는 것을 num2\[i-1\]을 해주면  
num2\[2\], num2\[1\], num2\[0\]이 되어 각각 5 8 3이 된다.

---

```plaintext
for i in range(len(num2), 0, -1):

   print(num1*int(num2[i-1]))
```

`len(num2)`는 해당 문제의 입력값이 385 이므로 len(num2) = 3이 된다.

`int(num2[i-1])`은 \[3, 8, 5\]가 각각 0번째 1번째 2번째 이므로  
num2\[2\] → 5, num2\[1\] → 8, num2\[0\] → 3

리스트의 값들이 위의 방식으로 꺼내지기 때문에 `num1*int(num2[i-1])`의 값은 각각

472\*5 = 2360  
472\*8 = 3776  
472\*3 = 1416 이 된다.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1711972639078/6c367e9d-d51d-4e9f-8950-b366872512cf.jpeg align="center")
