[문제링크]
https://www.acmicpc.net/problem/5532
5532번: 방학 숙제
한 줄에 하나씩 총 다섯 줄에 걸쳐 L, A, B, C, D가 주어진다. (2 ≤ L ≤ 40, 1 ≤ A, B ≤ 1000, 1 ≤ C, D ≤ 100) 항상 방학 숙제를 방학 기간내에 다 할 수 있는 경우만 입력으로 주어진다.
www.acmicpc.net
[문제]
상근이는 초등학교에 다닐 때, 방학 숙제를 남들보다 먼저 미리 하고 남은 기간을 놀았다. 방학 숙제는 수학과 국어 문제 풀기이다.
방학은 총 L일이다. 수학은 총 B페이지, 국어는 총 A페이지를 풀어야 한다. 상근이는 하루에 국어를 최대 C페이지, 수학을 최대 D페이지 풀 수 있다.
상근이가 겨울 방학동안 숙제를 하지 않고 놀 수 있는 최대 날의 수를 구하는 프로그램을 작성하시오.
[입력]
한 줄에 하나씩 총 다섯 줄에 걸쳐 L, A, B, C, D가 주어진다. (2 ≤ L ≤ 40, 1 ≤ A, B ≤ 1000, 1 ≤ C, D ≤ 100)
항상 방학 숙제를 방학 기간내에 다 할 수 있는 경우만 입력으로 주어진다.
[출력]
첫째 줄에 상근이가 놀 수 있는 날의 최댓값을 출력한다.
[예제 입력 1]
20 25 30 6 8
[예제 출력 1]
15
[설명]
이 문제를 보자마자 올림이라는 개념이 떠올랐습니다.
Math.ceil()을 활용하여 실수형 숫자를 올림하고 정수형으로 바꾸어 보았습니다.
A / C와 B / D 중 어느 숙제가 오래 걸리는지 확인해주는 bigger함수를 만들고 난 뒤에
총 일수 L에서 bigger함수에서 나온 수를 올림해준 숫자를 빼면 정답이 나왔습니다.
import java.util.Scanner;
public class Main {
public static double bigger(double a, double b) {
if(a>b)
return a;
else
return b;
}
public static void main(String[] args) {
int L;
double A,B,C,D;
Scanner scann = new Scanner(System.in);
L=scann.nextInt();
A=scann.nextDouble();
B=scann.nextDouble();
C=scann.nextDouble();
D=scann.nextDouble();
int homework = (int) Math.ceil(bigger(A/C,B/D));
System.out.println(L-homework);
}
}
궁금하신 부분이나 부족한 점은 댓글로 알려주시면 감사하겠습니다.
'알고리즘 > 구현' 카테고리의 다른 글
BJ_B2_15552_빠른A+B - Java (0) | 2022.01.20 |
---|---|
SWEA(SW EXPERT ACADEMY) - 1954번 : 달팽이 숫자 - JAVA (0) | 2021.01.21 |
BOJ(백준알고리즘) - 10872번 : 팩토리얼 - JAVA (2) | 2021.01.19 |
SWEA(SW Expert Academy) - 1986번 : 지그재그 숫자 - JAVA (0) | 2021.01.19 |
BOJ(백준알고리즘) - 15963번 : CASIO - JAVA (0) | 2021.01.18 |
댓글