문제
상근이는 초등학교에 다닐 때, 방학 숙제를 남들보다 먼저 미리 하고 남은 기간을 놀았다. 방학 숙제는 수학과 국어 문제 풀기이다.
방학은 총 L일이다. 수학은 총 B페이지, 국어는 총 A페이지를 풀어야 한다. 상근이는 하루에 국어를 최대 C페이지, 수학을 최대 D페이지 풀 수 있다.
상근이가 겨울 방학동안 숙제를 하지 않고 놀 수 있는 최대 날의 수를 구하는 프로그램을 작성하시오.
입력
한 줄에 하나씩 총 다섯 줄에 걸쳐 L, A, B, C, D가 주어진다. (2 ≤ L ≤ 40, 1 ≤ A, B ≤ 1000, 1 ≤ C, D ≤ 100)
항상 방학 숙제를 방학 기간내에 다 할 수 있는 경우만 입력으로 주어진다.
출력
첫째 줄에 상근이가 놀 수 있는 날의 최댓값을 출력한다.
풀이 과정
상근이가 하루에 국어를 최대 C페이지, 수학을 최대 D페이지 풀 수 있으므로, 최대한 숙제를 하루에 많이 하고 놀 수 있는 날을 확보해야 한다.
1. A페이지를 하루에 C페이지씩 풀면 국어 숙제를 하는 날은 A를 C로 나눈 몫 일 이다. 만약 A페이지를 C페이지로 나눴을 때 나누어 떨어지지 않는다면, 남은 페이지를 위해 하루를 더 숙제를 해야 하므로 나누어 떨어지지 않으면 1을 더해야한다.
2. B페이지를 하루에 D페이지씩 풀면 수학 숙제를 하는 날은 B를 D로 나눈 몫 일 이다. 만약 B페이지를 D페이지로 나눴을 때 나누어 떨어지지 않는다면, 남은 페이지를 위해 하루를 더 숙제를 해야 하므로 나누어 떨어지지 않으면 1을 더해야한다.
3. 숙제를 빠르게 끝내는 기간은 국어 숙제를 하는 날과 수학 숙제를 하는 날의 최댓값이 된다.
국어 숙제를 3일만에 끝낸다고 해도 수학 숙제를 6일만에 끝낸다면 숙제를 하지 않고 놀 수 있는 날은 L - 6이 된다.
C
#include <stdio.h>
int main(void) {
int L, A, B, C, D;
scanf("%d", &L);
scanf("%d", &A);
scanf("%d", &B);
scanf("%d", &C);
scanf("%d", &D);
int korean = A / C;
if (A % C != 0) korean += 1;
int math = B / D;
if (B % D != 0) math += 1;
int result;
if (korean > math) result = L - korean;
else result = L - math;
printf("%d", result);
return 0;
}
#include <stdio.h>
int main(void) {
int l, a, b, c, d;
scanf("%d", &l);
scanf("%d", &a);
scanf("%d", &b);
scanf("%d", &c);
scanf("%d", &d);
printf("%d", l - (((a / c) + (a % c == 0 ? 0 : 1))>((b / d) + (b % d == 0 ? 0 : 1))? ((a / c) + (a % c == 0 ? 0 : 1)): ((b / d) + (b % d == 0 ? 0 : 1))));
return 0;
}
Python
L = int(input().rstrip())
A = int(input().rstrip())
B = int(input().rstrip())
C = int(input().rstrip())
D = int(input().rstrip())
print(L - max(A//C + (1 if A % C != 0 else 0), B//D + (1 if B % D != 0 else 0)))
'-- 예전 기록 > BOJ' 카테고리의 다른 글
[ BOJ ] 11654 : 아스키 코드 ( BRONZE 5 ) / C, C++, Python, Java (0) | 2023.09.25 |
---|---|
[ BOJ ] 20499 : Darius님 한타 안 함? ( BRONZE 4 ) / C, Python (0) | 2023.09.25 |
[ BOJ ] 5341 : Pyramids ( BRONZE 5 ) / C, Python (0) | 2023.09.24 |
[ BOJ ] 29751 : 삼각형 ( BRONZE 5 ) / C, Python (0) | 2023.09.24 |
[ BOJ ] 9086 : 문자열 ( BRONZE 5 ) / C, C++, Python, Java (0) | 2023.09.23 |