BOJ[2914] - 저작권 by JavaScript
저작권
문제
언어
- JavaScript
순서도
- 앨범에 수록된 곡의 개수와 평균값을 이용해서 저작권이 있는 멜로디의 개수 계산하기
문제 풀이 step 1
- 평균값을 구하는 공식은
(앨범에 수록된 곳에 포함되어 있는 저작권이 있는 멜로디의 개수) / (앨범에 수록된 곡의 개수)입니다. - 이 때, 나온 평균값을 항상 올림해서 정수로 만든다고 합니다.
- 예를 들어,
- 앨범에 수록된 곡의 개수가 38 개이고, 저작권이 있는 멜로디의 개수가 894 개라면, 평균값은 23.53 이 되고, 올림해서 24 가 됩니다.
- 즉, 구한 값이 23.xxx 면 평균값은 24 가 됩니다. 소수점 이하의 부분은 .000… 이상의 값이어야 올림을 했을 때 24 가 될 수 있습니다.
- 23.xxx 라는 값이 나오려면 저작권이 있는 멜로디의 개수의 범위는 875 ~ 911 입니다.
- 문제에서 구해야 하는 것은 저작권이 있는 멜로디의 최소 개수이고, 이 경우에는 875 가 됩니다.
- 875는 어떻게 구할까요??
- 이는 평균값이 23 일때의 저작권이 있는 멜로디의 최대 개수에 1 을 더한 값과 같습니다.
- 앨범에 수록된 곡의 개수가 38 개이고, 평균값이 23 이라면, 저작권이 있는 멜로디의 최대 개수는
38 * 23 = 874입니다. - 이 874 에 1 을 더하면 평균값이 24 일때의 저작권이 있는 멜로디의 최소 개수입니다.
- 그렇다면 저작권이 있는 멜로디의 최소 개수를 구하는 공식은
(주어진 평균값 - 1) * (앨범에 수록된 곡의 개수) + 1이 됩니다. - 위에서 구한 공식을 이용해서 저작권이 있는 멜로디의 최소개수를 구하고 출력하면 정답입니다.
소스 코드
const input = require("fs")
.readFileSync("/dev/stdin")
.toString()
.trim()
.split("\n");
const solution = (input) => {
const [a, i] = input[0].split(" ").map(Number);
return a * (i - 1) + 1;
};
console.log(solution(input));