[ 두 수의 나눗셈 ]
Q. 정수 num1과 num2가 매개변수로 주어질 때, num1을 num2로 나눈 값에 1,000을 곱한 후 정수 부분을 return 하도록 soltuion 함수를 완성해주세요.
function solution(num1, num2) {
var answer = parseInt((num1/num2)*1000);
return answer;
}
* 다른 풀이
const solution = (num1, num2) => Math.floor(num1 / num2 * 1000);
function solution(num1, num2) {
return Math.trunc(num1 / num2 * 1000);
}
* Math.floor : 소수점이하 버림하여 정수 반환
* Math.ceil : 소수점이하 올림하여 정수 반환
* Math.round : 소수점 이하 반올림하여 정수 반환
* Math.trunc : 소수점 이하는 삭제하여 정수만 반환
[ 숫자 비교하기 ]
Q. 정수 num1과 num2가 매개변수로 주어집니다. 두 수가 같으면 1 다르면 -1을 retrun하도록 solution 함수를 완성해주세요.
function solution(num1, num2) {
var answer = 0;
function chkNum() {
if(num1 - num2 == 0){
answer = 1
}else{
answer = -1
}
}
chkNum();
return answer;
}
* 다른 풀이
function solution(num1, num2) {
var answer = num1 === num2 ? 1 : -1;
return answer;
}
[ 분수의 덧셈 ]
Q. 첫 번째 분수의 분자와 분모를 뜻하는 numer1, denom1, 두 번째 분수의 분자와 분모를 뜻하는 numer2, denom2가 매개변수로 주어집니다. 두 분수를 더한 값을 기약 분수로 나타냈을 때 분자와 분모를 순서대로 담은 배열을 return 하도록 solution 함수를 완성해보세요.
function solution(numer1, denom1, numer2, denom2) {
var child = numer1 * denom2 + numer2 * denom1;
var parent = denom1 * denom2;
for(let i=0; i>1; i--){
if(child % i == 0 && parent % i == 0){
child = parseInt(child/i);
parent = parseInt(parent/i);
}
}
var answer = [child, parent];
return answer;
}
* 다른 풀이 (다시보기)
function fnGCD(a, b){
return (a%b)? fnGCD(b, a%b) : b;
}
function solution(denum1, num1, denum2, num2) {
let denum = denum1*num2 + denum2*num1;
let num = num1 * num2;
let gcd = fnGCD(denum, num); //최대공약수
return [denum/gcd, num/gcd];
}
* boolean
0 : false , 1 : true
[ 배열 두배 만들기 ]
Q. 정수 배열 numbers가 매개변수로 주어집니다. numbers의 각 원소에 두배한 원소를 가진 배열을 return하도록 solution 함수를 완성해주세요.
function solution(numbers) {
var answer = [];
numbers.forEach(function(numbers){
answer.push(numbers *= 2);
});
return answer;
}
* 다른 풀이 (다시보기)
function solution(numbers) {
return numbers.reduce((a, b) => [...a, b * 2], []);
}
const solution = (numbers) => numbers.map((number) => number * 2)
function solution(numbers) {
return numbers.map(i=>i*2);
}
* reduce : 배열의 요소들을 순회하면서 반복적인 연산, 현재 리턴값이 다음 동작에 영향을 끼칠 수 있음
배열.reduce((누적값, 현잿값, 인덱스, 요소) => { return 결과 }, 초깃값);
* map : 반복문을 돌며 배열 안의 요소들을 1:1로 짝지어줌, 기존 배열 수정이 아닌 새로운 배열을 만들어냄
배열.map((요소, 인덱스, 배열) => { return 요소 });
* forEach : 주어진 함수를 배열 요소 각각에 대해 실행
arr.forEach(callback(currentvalue[, index[, array]])[, thisArg])
'JS > [프로그래머스] 문제풀이' 카테고리의 다른 글
Lv.0 나이출력, 최빈값 구하기, 짝수는 싫어요 (0) | 2024.11.08 |
---|---|
Lv.0 두수의 합, 차, 곱, 몫 구하기 (0) | 2023.02.24 |