방학 L일
풀어야 하는 양: [ A, B ] 국어 A페이지, 수학 B페이지
하루에 풀 수 있는 양 : [C, D] 국어, 수학
놀 수 있는 최대 일수는?
if __name__=='__main__':
lst = []
for i in range(5):
lst.append(int(input()))
L,A,B,C,D = lst
ans_K = A//C # 국어숙제 하는 데 필요한 일수
ans_M = B//D # 수학숙제 하는 데 필요한 일수
# 나눠떨어지지 않았다는 뜻이므로, 하루가 더 필요함
if ans_K*C != A : ans_K += 1
if ans_M*D != B : ans_M += 1
print(L-max(ans_K,ans_M))
wannabe00.tistory.com/entry/백준-4299-AFC-윔블던 <--여기서 배웠던 걸 사용했다.
A가 C의 배수인지, B가 D의 배수인지 if문으로 매번 확인할 필요 없이,
원래의 방정식이 복구가 되면 (ans_K*C ==A ) 배수였던 것,
복구가 되지 않았다면, 배수가 아니므로 필요한 일수에 하루를 더해줬다.
하지만, 이 경우는 둘 중 오래 걸리는 날에 대해서만 정수를 체크하면 되므로 이 방법이 더 간단하다.
마지막 print할 때, int로 안 바꿔주면, float으로 출력돼서 답이 틀렸다고 나오니 주의하자.
if __name__=='__main__':
lst = []
for i in range(5):
lst.append(int(input()))
L,A,B,C,D = lst
ans = max(A/C, B/D) # 숙제 하는 데 더 오래 걸리는 날
# 나눠떨어지지 않았다는 뜻이므로, 하루가 더 필요함
if ans-int(ans)!=0 : ans += 1
print(L-int(ans))
'공부하는 것들 > 알고리즘' 카테고리의 다른 글
백준 3004 : 체스판 조각 (0) | 2021.02.22 |
---|---|
백준 5543 : 상근날드 (0) | 2021.02.21 |
백준 4299 : AFC 윔블던 ** (0) | 2021.02.21 |
백준 2753 : 윤년 (0) | 2021.02.20 |
백준 2752 : 세수정렬 (0) | 2021.02.20 |