Algorithm/BOJ(Baekjoon Online Judge)

[백준 - 5532번] 방학 숙제 - Java //Wello Horld//

koucop 2019. 8. 6. 14:08

이번에는 BOJ의 5532번 문제 "방학 숙제" 를 풀어보도록 하자

입력으로, 방학의 총 일수 L, 방학기간에 해야할 국어 숙제의 총 페이지수 A, 수학 숙제의 총 페이지수 B, 하루에 최대로 풀 수 있는 페이지수 국어 : C, 수학 : D 가 주어지고, 출력으로 숙제를 하지 않고 놀 수 있는 최대 일 수를 구하면 되는 문제이다. 

입력부분에 "항상 방학 숙제를 방학 기간내에 다 할 수 있는 경우만 입력으로 주어진다." 라는 구문이 있기 때문에, 이 문제를 풀기 위해서 따로 예외 처리를 하지 않아도 된다. 그래서 먼저 국어숙제만 할 때 필요한 요일 수를 구하고, 수학 숙제를 할 때 필요한 요일 수와 비교하여 답을 구하도록 했다.

성공한 코드는 아래와 같다.

import java.io.*;
import java.util.*;

public class sample {
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        int L = Integer.parseInt(br.readLine());
        int A = Integer.parseInt(br.readLine());
        int B = Integer.parseInt(br.readLine());
        int C = Integer.parseInt(br.readLine());
        int D = Integer.parseInt(br.readLine());
        int max = 0;
        if(A % C == 0) max = (A / C);
        else max = (A / C) + 1;
        if(B % D == 0) max = Math.max(max, B / D);
        else max = Math.max(max, (B / D) + 1);
        bw.write(L - max + "\n");

        bw.flush();
        br.close();
        bw.close();
    }
}

 

문제 : https://www.acmicpc.net/problem/5532

 

5532번: 방학 숙제

문제 상근이는 초등학교에 다닐 때, 방학 숙제를 남들보다 먼저 미리 하고 남은 기간을 놀았다. 방학 숙제는 수학과 국어 문제 풀기이다. 방학은 총 L일이다. 수학은 총 B페이지, 국어는 총 A페이지를 풀어야 한다. 상근이는 하루에 국어를 최대 C페이지, 수학을 최대 D페이지 풀 수 있다. 상근이가 겨울 방학동안 숙제를 하지 않고 놀 수 있는 최대 날의 수를 구하는 프로그램을 작성하시오. 입력 한 줄에 하나씩 총 다섯 줄에 걸쳐 L, A, B, C, D가

www.acmicpc.net