• TOC {:toc}

이 글은 백준 온라인 저지의 2588번 문제를 파이썬(Python)으로 풀이한 것을 모아놓은 글입니다.

일종의 연습 기록이며 제가 정답을 받은 코드와 참고할만한 다른 코드를 같이 기록합니다. 필요한 경우 코드에 대한 해설을 기록합니다만 코드는 통과했어도 해설은 틀릴 수 있기 때문에 가볍게 참고해주시길 부탁드립니다. 피드백은 편하신 방법으로 자유롭게 주시면 감사하겠습니다.

2021.03.04

메모리 시간 코드 길이
28776 KB 72 ms 84 B
a = int(input())
b = input()

for i in reversed(b):
    print(a * int(i))
print(a * int(b))

아이디어 & 풀이

(3), (4), (5) 는 각각 처음 입력받은 수에 두 번째 입력받은 수의 각 자릿수를 곱한 값이다.

  • 두 번째 받은 숫자를 역전시킨 뒤 앞에서부터 매 자리를 int로 변환해 곱한 값을 출력한다.

피드백

  • reversed를 사용한 게 비효율적일 수도 있을 것 같다.

참고 답안 1

a = int(input())
# list(input()): 받은 값을 매핑할 수 있도록 리스트로 만든다.
# map을 이용해 각 원소를 int로 변환한 뒤 다시 리스트로 만든다.
b = list(map(int, list(input())))

for i in range(3):
    # 마지막 원소부터 연산해서 출력
    print(a * b[2 - i])
print(a * (100 * b[0] + 10 * b[1] + b[2]))

참고 답안 2

a = int(input())
b = int(input())

# 각 자릿수의 값을 연산으로 구한 뒤 계산한다.
print(a * (b % 10), a * ((b // 10) % 10), a * (b // 100), a * b)