알고리즘/백준알고리즘

[백준알고리즘] #15474. 鉛筆 (Pencils) (by JAVA and node.js)

Jimnya 2022. 5. 3. 18:57
728x90
반응형

백준알고리즘

- Bronze 4 -

 #15474. 鉛筆 (Pencils) by JAVA and node.js 

 


 

문제

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

번역: https://www.acmicpc.net/board/view/85878

 

글 읽기 - (번역) 15474 - 연필

댓글을 작성하려면 로그인해야 합니다.

www.acmicpc.net


 

접근 방법

N개의 연필이 필요하고,

X세트에는 A개의 연필, B엔

Y세트에는 C개의 연필, D엔

 

1. N/A와 N/C를 해서 그 값들보다 크거나 같은 정수를 구해 X세트와 Y세트를 각각 몇 개를 사야하는지 구한 뒤,

2. 그 개수만큼 B와 D에 각각 곱해 얼마의 비용이 드는지 구하고,

3. 그 비용들 중 작은 값을 Math.min()을 이용해 출력하면 된다.

 


 

풀이

▶ JAVA

import java.util.*;

public class Main {
    public static void main(String[] args){
        Scanner scan = new Scanner(System.in);
        int n = scan.nextInt(); // 필요한 연필의 양
        int a = scan.nextInt(); // X세트에 들어있는 연필의 개수
        int b = scan.nextInt(); // X세트 하나의 가격
        int c = scan.nextInt(); // Y세트에 들어있는 연필의 개수
        int d = scan.nextInt(); // Y세트 하나의 가격
        scan.close();
        
        int cnt1 = (n % a == 0 ? n/a : (n/a) + 1); // X세트로 구매 시 필요한 세트 수
        int cnt2 = (n % c == 0 ? n/c : (n/c) + 1); // Y세트로 구매 시 필요한 세트 수
        
        int result1 = cnt1 * b; // X세트로 구매 시 총 금액
        int result2 = cnt2 * d; // Y세트로 구매 시 총 금액
        
        System.out.println(Math.min(result1, result2));
    }
}

 

▶ node.js

var fs = require('fs');
var input = fs.readFileSync('/dev/stdin').toString().trim().split(' ').map(v => +v);

var n = input[0];
var a = input[1];
var b = input[2];
var c = input[3];
var d = input[4];

var cnt1 = (n % a == 0 ? parseInt(n/a) : parseInt(n/a)+1);
var cnt2 = (n % c == 0 ? parseInt(n/c) : parseInt(n/c)+1);

var result1 = cnt1 * b;
var result2 = cnt2 * d;

console.log(Math.min(result1, result2));

 


 

결과

 


 

 

 

 

 

End.

heisely's 괴발개발 개발일지

 

728x90
반응형