본문 바로가기

Algorithm & SQL/Baekjoon

[Algorithm] [Python] 백준/BOJ - 5532 _ 방학 숙제

1966 - 수 찾기


INDEX


문제


상근이는 초등학교에 다닐 때, 방학 숙제를 남들보다 먼저 미리 하고 남은 기간을 놀았다. 방학 숙제는 수학과 국어 문제 풀기이다.

방학은 총 L일이다. 수학은 총 B페이지, 국어는 총 A페이지를 풀어야 한다. 상근이는 하루에 국어를 최대 C페이지, 수학을 최대 D페이지 풀 수 있다.

상근이가 겨울 방학동안 숙제를 하지 않고 놀 수 있는 최대 날의 수를 구하는 프로그램을 작성하시오.

입력


한 줄에 하나씩 총 다섯 줄에 걸쳐 L, A, B, C, D가 주어진다. (2 ≤ L ≤ 40, 1 ≤ A, B ≤ 1000, 1 ≤ C, D ≤ 100)

항상 방학 숙제를 방학 기간내에 다 할 수 있는 경우만 입력으로 주어진다.

출력


첫째 줄에 상근이가 놀 수 있는 날의 최댓값을 출력한다.

예제 입출력


input :

20
25
30
6
8

output:
15

제출 코드


from sys import stdin
day = int(stdin.readline())
hw_lang = int(stdin.readline())
hw_math = int(stdin.readline())
day_lang = int(stdin.readline())
day_math = int(stdin.readline())

while True:
    if hw_lang <= 0 and hw_math <= 0:
        print(day)
        break
    else:
        hw_lang -= day_lang
        hw_math -= day_math
        day -= 1

 

문제 풀이


수학과 국어 과제의 할당량을 매일 진행하며 day를 1씩 뺀다.

이를 반복하다가 수학 과제와 국어 과제의 전체 할당량이 끝나면 day 값을 출력하도록 한다.

 

다른 사람의 풀이


import math
L = int(input())
A = int(input())
B = int(input())
C = int(input())
D = int(input())
k = math.ceil(A / C)
m = math.ceil(B / D)
free = max(k, m)
print(L - free)

math 모듈의 ceil() 함수를 사용하였다.

ceil() 함수를 통해 올림 연산을 진행하였다.