63
풀이
하루에 한 과목이 아닌 두 과목 모두 풀 수 있으므로 max, ceil 함수를 사용해서 남은 일수를 계산합니다. C는 max 함수가 없으므로 매크로로 지정해서 사용합니다.
코드
C
#include <stdio.h>
#include <math.h>
#define max(x, y) ((x) > (y) ? (x) : (y))
int main() {
int l, a, b, c, d, freeday;
scanf("%d %d %d %d %d", &l, &a, &b, &c, &d);
freeday = l - max(ceil(((float)a/c)), ceil(((float)b/d)));
printf("%d", freeday);
return 0;
}
C++
#include <iostream>
#include <cmath>
using namespace std;
int main() {
int l, a, b, c, d, freeday;
cin>>l>>a>>b>>c>>d;
freeday = l - max(ceil(((float)a/c)), ceil(((float)b/d)));
cout<<freeday;
return 0;
}
Java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int l = sc.nextInt(), a = sc.nextInt(), b = sc.nextInt(), c = sc.nextInt(), d = sc.nextInt();
System.out.print((int)(l - Math.max(Math.ceil(((float)a/c)), Math.ceil(((float)b/d)))));
}
}
Python
from math import ceil
l, a, b, c, d = [int(input()) for i in range(5)]
print(l - max(ceil(a/c), ceil(b/d)))
문제 출처
https://www.acmicpc.net/problem/5532