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
반응형
'알고리즘 > 백준알고리즘' 카테고리의 다른 글
[백준알고리즘] #5575. 타임 카드 (by JAVA and node.js) (0) | 2022.04.22 |
---|---|
[백준알고리즘] #5543. 상근날드 (by JAVA and node.js) (0) | 2022.04.22 |
[백준알고리즘] #4299. AFC 윔블던 (by JAVA and node.js) (0) | 2022.04.22 |
[백준알고리즘] #2753. 윤년 (by JAVA and node.js) (0) | 2022.04.21 |
[백준알고리즘] #2588. 곱셈 (by JAVA and node.js) (0) | 2022.04.21 |