알고리즘/구현

BOJ(백준알고리즘) - 5532번 : 방학 숙제 - JAVA

naksnaks 2021. 1. 18.
반응형

[문제링크]

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함수에서 나온 수를 올림해준 숫자를 빼면 정답이 나왔습니다.

 

백준 알고리즘 5532번 JAVA풀이

 

 

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);
	}

}

 

 

궁금하신 부분이나 부족한 점은 댓글로 알려주시면 감사하겠습니다.

반응형

댓글

💲 추천 글