Computer Science/Algorithm
[Baekjoon] Greedy - 2777 숫자 놀이 (오답노트)
ddu0422
2023. 8. 28. 21:20
문제
2777번: 숫자 놀이
첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 양의 정수 N이 주어진다. (1 <= N <= 1,000,000,000)
www.acmicpc.net
풀이
import sys
t = int(sys.stdin.readline().rstrip())
def solution(number):
if number < 10:
return 1
answer = 0
index = 9
# 가장 큰 수부터 나누며 계속 나눌 수 있는 경우 반복하여 나누어준다.
# 2자리는 1의 자리 2개로 바꿀 수 있으므로 계산하는 의미가 없다.
while index > 1:
if number % index != 0:
index -= 1
continue
answer += 1
number //= index
if number == 1:
return answer
return -1
for _ in range(t):
sys.stdout.write(str(solution(int(sys.stdin.readline().rstrip()))) + "\n")
채점 결과
