728x90
반응형

백준알고리즘

- Bronze 4 -

 #5532. 방학 숙제 by JAVA and node.js 

 


 

문제

출처: https://www.acmicpc.net/problem/5532

 


 

접근 방법

문제와 입력을.. 잘.. 읽어야한다..

문제에서의 순서는 방학일수(L), 수학숙제량(B), 국어숙제량(A), 하루에 풀 수 있는 국어량(C), 하루에 풀 수 있는 수학량(D)이지만 입력값은 방학일수(L), 국어숙제량(A), 수학숙제량(B), 하루에 풀 수 있는 국어량(C), 하루에 풀 수 있는 수학량(D)이다.

 

문제만 읽고 푸는 순간 틀릴 수도 있다.

 

어쨌거나, 국어 숙제를 하는데 걸리는 날짜는 A/C, 수학 숙제를 하는데 걸리는 날짜는 B/D이고, 전부 다 하는데 걸리는 날짜는 A/C와 B/D 중 큰 것이 된다.

걸리는 날짜와 둘 중 큰 것을 고를 때에는 여러 방법이 있으나 가장 쉬운 방법인 삼항연산자로 풀겠다.

 


 

풀이

▶ JAVA

import java.util.*;

public class Main {
    public static void main(String[] args){
        Scanner scan = new Scanner(System.in);
        int l = scan.nextInt(); // 방학 일수
        int a = scan.nextInt(); // 국어 숙제량
        int b = scan.nextInt(); // 수학 숙제량
        int c = scan.nextInt(); // 하루에 풀 수 있는 국어량
        int d = scan.nextInt(); // 하루에 풀 수 있는 수학량
        scan.close();
        
        // 나눠떨어지면 나눈 값을, 나눠 떨어지지 않으면 +1일을 해준다.
        int kor = (a%c == 0 ? a/c : (a/c) +1); 
        int math = (b%d == 0 ? b/d : (b/d) +1);

        System.out.println(kor > math ? l - kor : l - math);
    }
}

 

▶ node.js

var fs = require('fs');
var input = fs.readFileSync('/dev/stdin').toString().trim().split('\n').map(v => +v);
var l = input[0];
var a = input[1];
var b = input[2];
var c = input[3];
var d = input[4];

var kor = (a%c == 0 ? a/c : parseInt(a/c)+1);
var math = (b%d == 0 ? b/d : parseInt(b/d)+1);
console.log(kor > math ? l - kor : l - math);

node.js의 경우 a/c값이 소수점 이하까지 나오므로 나눠 떨어지지 않을 경우 parseInt()로 형변환을 해준 후 +1을 해준다.


 

결과

 


 

 

 

 

 

End.

heisely's 괴발개발 개발일지

 

728x90
반응형

+ Recent posts