2839号:砂糖送り[python]
これは白準アルゴリズムの2839番の問題です.
先にやろう
Nキロを入力し、5キロに分けなければ、5キロ袋の個数を1つ減らし、残りを3キロに分けます.このとき3 kgの残りが0であれば、最大袋数です.
このとき4つの数が3キロと5キロに分けられない.1、2、4、7は4つの数を1つの式に抽象化できる方法が思いつかないので、まずそれぞれの条件でフィルタリングします.
num = int(input())
quotient_5 = int(num / 5)
remains_5 = num % 5
if remains_5 == 0: # 5로 나눈 나머지가 0이면 최소 개수
result = quotient_5
elif num == 4 or num == 7 or num < 3: # 나눌 수 없는 수 1, 2, 4, 7
result = -1
else:
for i in range(quotient_5 + 1): # 5의 개수를 하나씩 줄여가며 나머지를 3으로 나누어본다.
tmp = num - (quotient_5 - i) * 5
quotient_3 = int(tmp / 3)
remains_3 = tmp % 3
if remains_3 == 0:
result = quotient_3 + (quotient_5 - i) # 3으로 나눈 나머지가 0이면 최소 개수
break
print(result)
袋の最小個数は5キロかもしれませんが、残りは0です.Nキロを入力し、5キロに分けなければ、5キロ袋の個数を1つ減らし、残りを3キロに分けます.このとき3 kgの残りが0であれば、最大袋数です.
このとき4つの数が3キロと5キロに分けられない.1、2、4、7は4つの数を1つの式に抽象化できる方法が思いつかないので、まずそれぞれの条件でフィルタリングします.
Reference
この問題について(2839号:砂糖送り[python]), 我々は、より多くの情報をここで見つけました https://velog.io/@dongkan9/2839번-설탕-배달-pythonテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol