// 정수 num1과 num2가 매개변수로 주어질 때, num1을 num2로 나눈 값에 1,000을 곱한 후 정수 부분을 return 하도록 solution 함수를 완성해주세요.
function solution(num1, num2) {
var answer = 0;
answer = parseInt((num1 / num2) * 1000);
return answer;
}
// 정수 num1과 num2가 매개변수로 주어집니다.두 수가 같으면 1 다르면 - 1을 retrun하도록 solution 함수를 완성해주세요.
function solution(num1, num2) {
var answer = 0;
if (num1 === num2) {
answer = 1;
} else {
answer = -1;
}
return answer;
}
if 문 작성법
if (조건식) { // statement1}
else if(조건식) { // statement2 }
else { // statement3 }
- if 안에 있는 조건식이 참인 경우 해당하는 if문, else if문을 실행 한다.
- 조건문(if, else if)에 모두 해당하지 않으면 else에 있는 statement3 이 실행된다.
- else if에는 갯수 제한이 따로 없다.
// 첫 번째 분수의 분자와 분모를 뜻하는 numer1, denom1, 두 번째 분수의 분자와 분모를 뜻하는 numer2, denom2가 매개변수로 주어집니다. 두 분수를 더한 값을 기약 분수로 나타냈을 때 분자와 분모를 순서대로 담은 배열을 return 하도록 solution 함수를 완성해보세요.
function solution(numer1, denom1, numer2, denom2) {
const denom = denom1 * denom2;
const numer = numer1 * denom2 + numer2 * denom1;
// 최대공약수 구하기 (유클리드 호제법)
function gcd(a, b) {
if (b === 0) {
return a;
}
return gcd(b, a % b);
}
const g = gcd(numer, denom);
return [numer / g, denom / g];
}
- 첫 번째 분수:
numer1 / denom1- 두 번째 분수:
numer2 / denom2- 두 분수를 더한 뒤 기약분수로 만들어 [분자, 분모] 형태의 배열을 반환한다.
문제풀이
- 분수를 더하기 위해 통분
- 더한 결과를 최대공약수(GCD)로 나누어 기약분수로 변환
- 결과를 배열로 반환
분수 덧셈 (통분하기)
const denom = denom1 * denom2; const numer = numer1 * denom2 + numer2 * denom1;
최대공약수(GCD) 구하기 — 유클리드 호제법
- 최대공약수(GCD): 두 수를 동시에 나눌 수 있는 가장 큰 수
- 기약분수를 만들기 위해 반드시 필요
유클리드 호제법 핵심 원리
gcd(a, b) =gcd(b, a% b)
b === 0이면 →a가 최대공약수- 그렇지 않으면
(a, b)를(b, a % b)로 바꿔 반복
GCD 함수 코드
functiongcd(a, b) { if (b ===0) { return a; } return gcd(b, a % b); }
GCD 동작 예시
gcd(12, 8)실행 과정:
1.gcd(12, 8)→gcd(8, 4)
2.gcd(8, 4)→gcd(4, 0)
b === 0→4반환
기약분수로 만들기
const g =gcd(numer, denom); return [numer / g, denom / g];
- 분자와 분모를 최대공약수
g로 나누면 기약분수 완성- 배열 형태로 반환
// 정수 배열 numbers가 매개변수로 주어집니다.numbers의 각 원소에 두배한 원소를 가진 배열을 return하도록 solution 함수를 완성해주세요.
function solution(numbers) {
return numbers.map((num) => num * 2);
}
map()
map()은 배열의 각 요소를 하나씩 변환(transform) 하여
새로운 배열을 만들어 반환하는 메서드이다.
기본 특징
- 원본 배열을 변경하지 않는다
- 항상 새로운 배열을 반환한다
- 반환값이 없으면 각 요소가
undefined가 된다- 반환된 배열의 길이는 원본과 동일