저작권

문제

언어

  • JavaScript

순서도

  1. 앨범에 수록된 곡의 개수와 평균값을 이용해서 저작권이 있는 멜로디의 개수 계산하기

문제 풀이 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));