[Daily Post] 230526
[Daily Post]는 매일매일 탐구한 내용을 간략하게 기록하는 포스트입니다.
따라서 정리되지 않은 내용과 추측을 포함하고 있을 수 있습니다.
더 체계적인 형식을 갖춘 글은 해당 카테고리의 포스트를 확인해주세요 :)
Daily Study
PS
2839. 설탕 배달
##N = int(input())
### 1. for_five
### 2. for_three
### 3. dividable
### 4. -1
def get_sugar(N):
for_five = 999999
for_three = 999999
for_any = 999999
tmp_N = N
able_five = False
able_three = False
able_any = False
cnt = 999999
if(N % 5 == 0):
for_five = N//5
able_five == True
elif(N % 3 == 0):
for_three = N//3
able_three == True
while(N>=3):
if(N % 5 == 0):
N = 0
cnt += N//5
elif(N%3 == 0):
N = 0
cnt += N//3
else:
if(N>=3):
if(N>=5):
N -= 5
cnt += 1
else:
N -= 1
cnt += 1
if(N==0): able_any = True
print("[%d]: f:%d, t:%d, a:%d"%(tmp_N,for_five, for_three, cnt-999999))
def test_first():
assert get_sugar(18) == 4
def test_second():
assert get_sugar(4) == -1
def test_third():
assert get_sugar(6) == 2
def test_forth():
assert get_sugar(9) == 3
def test_fifth():
assert get_sugar(11) == 3
- 위와 같이 테스트 케이스도 작성해서 문제를 풀었는데, 브루트 포스라고 해서 만만하게 생각해서 그런가 생각보다 시간이 오래 걸린다.