Problem.
Learn.
Math.floor
와 Math.trunc
의 차이를 배움
floor
는 소수점 내림 발생 -> 만약에 음수 -23.3이면 -24가 될 수 있기 때문에 주의
trunc
는 소수점 버림 발생 -> -23.3이어도 -23
Solve.
function solution(num1, num2) {
var answer = Math.floor((num1 / num2) * 1000);
return answer;
}
Problem.
Learn.
toFixed(n)
메서드는 소수점 n째 자리까지 자름
Math.round
로 소수점 자리를 계산할 수도 있음
Math.round(num * 10) / 10
<- 10을 곱하고 나누어 소수점 첫째 자리까지
Solve.
function solution(numbers) {
var answer = 0;
var sum = 0;
var numLen = numbers.length;
for(var i = 0; i < numLen; i++) {
sum = sum + numbers[i]
}
answer = (sum / numLen).toFixed(1)
return answer;
}
Problem.
Learn.
- 약수 -> 어떤 수를 나누었을 때 나머지가 0으로 딱 나누어지는 수
- 공약수 -> 두 숫자가 공통으로 갖는 약수
- 예를 들어,
- 12와 18의 약수
- 12의 약수: 1, 2, 3, 4, 6, 12
- 18의 약수: 1, 2, 3, 6, 9, 18
- 공통된 약수: 1, 2, 3, 6
- GCD -> 가장 큰 공약수 최대공약수로 6
- 서로소 -> 두 숫자가 공약수가 1밖에 없는 상태. 즉, 두 숫자가 공통으로 나눌 수 있는 가장 큰 수가 1
- 예를 들어,
- 8과 15는 8의 약수: 1, 2, 4, 8 / 15의 약수: 1, 3, 5, 15
- 공통된 약수가 1뿐이므로 8과 15는 서로 소
- 6과 9는 6의 약수: 1, 2, 3, 6 / 9의 약수: 1, 3, 9
- 공통된 약수가 1, 3이므로 서로 소가 아님
- 약분 -> 분수의 분자와 분모를 공약수로 나누어 간단하게 만드는 과정
- 예를 들어,
- 12/18:
- 가장 큰 공약수(GCD)로 나누면:
- 따라서 약분 결과는:
- 약분 하려면 공약수를 알아야 하고, 기약 분수를 만들려면 분자와 분모가 서로 소인지 확인해야 함
- 기약 분수 -> 분수를 더 이상 약분할 수 없는 형태로 만든 분수. 즉, 분자와 분모의 공약수가 1인 분수
- 예를 들어,
- 6/8:
- 분자와 분모의 공약수가 2인 상태
- 6의 약수: 1, 2, 3, 6
- 8의 약수: 1, 2, 4, 8
- 공약수: 1, 2
- GCD: 2
- 기약 분수 구하는 방법:
- 분자와 분모의 GCD를 구함
- 분자와 분모를 GCD로 나눔
- 더 이상 약분할 수 없으면 기약 분수
- 6/8:
- (6/2)/(8/2) = 3/4
- 3의 약수: 1, 3
- 4의 약수: 1, 2 ,4
- 따라서 3/4는 분자와 분모의 공약수가 1인(서로 소) 분수이므로 기약 분수
- 최소공배수 -> LCM, 두 수 이상의 수에서 공통으로 존재하는 배수 중 가장 작은 값
- 배수 나열법:
- 4와 6의 최소공배수:
- 4의 배수: 4, 8, 12, 16, 20, ...
- 6의 배수: 6, 12, 18, ...
- LCM: 12
- 소인수분해법:
- 두 수를 소인수분해한 후, 공통된 소인수와 모든 소인수를 고려하되 각 소인수의 지수 중 최대값을 곱함
- 12와 18의 최소공배수:
- 12 = 3 * 2^2
- 18 = 2 * 3^2
- 각 소인수의 지수 중 최대값을 곱함: 2^2 * 3^2 = 36
- LCM: 36
- 최대공약수법:
- 최소공배수 = (두 수의 곱 / 최대공약수)
- 8과 12의 최소공배수(LCM):
- 8 * 12 = 96
- 최대공약수
- 8의 약수: 1, 2, 4, 8
- 12의 약수: 1, 2, 3, 4, 6, 12
- GCD: 4
- 96 / 4 = 24
- LCM: 24
Solve.
function solution(numer1, denom1, numer2, denom2) {
let GCD = findGCD(denom1, denom2);
let LCM = (denom1 * denom2) / GCD;
let a = numer1 * (LCM / denom1);
let b = numer2 * (LCM / denom2);
let ab = a + b;
let denom = LCM;
let resultGCD = findGCD(ab, denom);
ab /= resultGCD;
denom /= resultGCD;
return [ab, denom];
}
function findGCD(a, b) {
let smaller = Math.min(a, b);
let GCD = 1;
for (let i = 1; i <= smaller; i++) {
if (a % i === 0 && b % i === 0) {
GCD = i;
}
}
return GCD;
}