개발 연습장/백준 문제풀이

[파이썬, Python] 백준 2588: 곱셈

LooanCheong 2022. 10. 25. 15:44
반응형

문제

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

 

2588번: 곱셈

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

www.acmicpc.net

코드

a = int(input())
b = input()
print(a * int(b[2]))
print(a * int(b[1]))
print(a * int(b[0]))
print(a * int(b))

생소한 문법이 하나 보인다. 'b[2]' 이런 문법이 있는데 이는, b 문자열의 [2]번째에 있는 단어, 숫자를 표현하는 방법이다.
사람은 1부터 숫자를 세지만, 컴퓨터는 0부터 숫자를 세기 때문에, 0,1,2... 이런 식으로 숫자를 사용하면 된다.
그렇다면 b[2]는 입력받은 수의 세번째 자리를 뜻하게 된다.

설명

코드가 되게 여러가지 방식으로 나올 수 있는 문제인데, 가장 깔끔하다고 생각하는 방법으로 풀어봤다.
각 자리를 분할해서 각각 곱셈을 진행하는 방식으로 계산했다.

(3)의 경우 a와 b의 3번째 자리를(1의 자리),
(2)의 경우 a와 b의 2번째 자리를(10의 자리),
(1)의 경우 a와 b의 1번째 자리를(100의 자리)
곱해서 각각 프린트하고, 마지막 (6)번의 경우 a와 b의 곱셈으로 간단하게 계산했다.

반응형