본문 바로가기
코딩 테스트/백준

[백준 2588번] 곱셈 (python)

by SH_L 2023. 8. 5.
반응형

[문제]

 

 

 

 

[코드]

 

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

two = A*int(B[2])
one = A*int(B[1])
zero = A*int(B[0])
result = two + (one*10) + (zero*100)

print(two)
print(one)
print(zero)
print(result)

 

 

 

[풀이]

 

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

 

첫째 줄 (1) 위치에 들어갈 세 자리 자연수를 A로 입력 받는다. 입력받은 다음에 int형으로 변환시킨다.

둘째 줄 (2) 위치에 들어갈 세 자리 자연수를 B로 입력 받는다. B는 A와 달리 문자열 형태이다.

 

two = A*int(B[2])
one = A*int(B[1])
zero = A*int(B[0])

 

셋째 줄 (3) 위치에 들어갈 값은 세 자리 자연수인 A와 세 자리 자연수 B의 세 번째 자리 값 간의 곱이다. 문제에 나온 값을 예시로 들자면 "472 * 5"의 값이 들어가게 되는 것이다.

 

B가 문자열 형태로 이루어져 있기 때문에 인덱스 [2]로 접근하여 문자 하나를 가져온다. 이때, 곱셈 연산이 이루어져야 하기 때문에 int형으로 변환시킨 후에 A와 곱셈 연산을 진행한다.

 

넷째 줄 (4) 위치에 들어갈 값은 세 자리 자연수인 A와 세 자리 자연수 B의 두 번째 자리 값 간의 곱이다. 문제에 나온 값을 예시로 들자면 "472 * 8"의 값이 들어가게 되는 것이다.

 

B가 문자열 형태로 이루어져 있기 때문에 인덱스[1]로 접근하여 문자 하나를 가져온다. 이때, 곱셈 연산이 이루어져야 하기 때문에 int형으로 변환시킨 후에 A와 곱셈 연산을 진행한다.

다섯째 줄 (5) 위치에 들어갈 값은 세 자리 자연수인 A와 세 자리 자연수 B의 첫 번째 자리 값 간의 곱이다. 문제에 나온 값을 예시로 들자면 "472 * 3"의 값이 들어가게 되는 것이다.

 

B가 문자열 형태로 이루어져 있기 때문에 인덱스[0]로 접근하여 문자 하나를 가져온다. 이때, 곱셈 연산이 이루어져야 하기 때문에 int형으로 변환시킨 후에 A와 곱셈 연산을 진행한다.

 

result = two + (one*10) + (zero*100)

print(two)
print(one)
print(zero)
print(result)

 

여섯째 줄 (6) 위치에 들어갈 값은 (3), (4), (5)에 들어갈 값을 모두 더한 값이다. 이때, 각 값을 모두 더할 때 자릿값을 곱한 뒤에 더해주어야 한다. (3) 위치에 들어갈 값은 일의 자리이기 때문에 원래 값을 그대로 더해준다. (4) 위치에 들어갈 값은 십의 자리이기 때문에 10을 곱해준 뒤에 더해준다. (5) 위치에 들어갈 값은 백의 자리이기 때문에 100을 곱해준 뒤에 더해준다.

 

이후에 구한 값을 각각 출력해주면 된다.

반응형