728x90
1. Question
2-1. Code-01
a = int(input())
b = int(input())
c =a*(b%10)
d =a*((b%100)//10)
e = a*(b//100)
print(c)
print(d)
print(e)
print(a*b)
#print(c+(d*10)+(e*100))
3-1. Solution-02
1~2. a와 b를 입력받은 후 int형으로 변환합니다.
4. a와 b의 일의 자리 수를 곱해야 합니다. 일의 자리 수는 b를 10으로 나눈 나머지입니다.
5. a와 b의 십의 자리 수를 곱해야 합니다. 십의 자리 수는 b를 100으로 나눈 나머지를 10으로 나눈 몫입니다.
6. a와 b의 백의 자리 수를 곱해야 합니다. 백의 자리 수는 b를 100으로 나눈 몫입니다.
7. c를 출력합니다.
8. d를 출력합니다.
9. a와 b를 곱한 값을 출력합니다.
2-2. Code-02
a = int(input())
b = input()
for i in range(len(b), 0, -1) :
print(a*int(b[i-1]))
print(a*int(b))
3-1. Solution-02
제가 작성한 코드인 01이 부족하다고 느꼈습니다. 만약 백의 자리 수를 곱하는게 아니라 천의 자리, 만의 자리까지 곱하게 된다면 이 코드는 효율성이 떨어지는 것 같습니다. 여러 풀이법을 찾아보니 리스트를 이용하는 방식이 훨씬 효율적일 것 같아 리스트를 이용하는 방식도 작성해보았습니다.
1. 첫번째로 곱할 수를 입력하여 int형으로 변환을 합니다.
2. 두번째 수는 리스트로 작성할 예정이므로 따로 형변환을 하지 않습니다.
4. b의 개수부터 0까지 1씩 빼는 for문을 작성하였습니다. 여기서 역순으로 하는 이유는 일의 자리부터 곱해야 하기 때문입니다. i는 리스트의 순서입니다.
5. a와 b의 리스트 안에 담긴 숫자를 곱한 값을 출력합니다.
7. a와 b를 곱한 값을 출력합니다. 여기서 b는 숫자가 아니라 문자열 형식이므로 int형으로 형변환을 해줍니다.
https://www.acmicpc.net/problem/2588
728x90
'Programming > BaekJoon' 카테고리의 다른 글
[Python] 백준 2163번 초콜릿 자르기 (0) | 2022.02.04 |
---|---|
[Python] 백준 3046번 R2 (0) | 2022.02.04 |
[Python] 백준 2558번 A+B - 2 (0) | 2022.02.04 |
[Python] 백준 10430번 나머지 (0) | 2022.02.04 |
[Python] 백준 10869번 사칙연산 (0) | 2022.02.04 |