매우매우 피곤하지만.. 코딩테스트 2일차 갑시당.
코딩테스트 2일차
숫자 비교하기
정수 num1과 num2가 매개변수로 주어집니다. 두 수가 같으면 1 다르면 -1을 retrun하도록 solution 함수를 완성해주세요.
예시)
num1 | num2 | result |
2 | 3 | -1 |
11 | 11 | 1 |
7 | 99 | -1 |
✍️정답
function solution(num1, num2) {
let answer = 0
if(num1 === num2){
answer = 1
} else {
answer = -1
}
return answer;
}
두 수의 나눗셈
정수 num1과 num2가 매개변수로 주어집니다. 두 수가 같으면 1 다르면 -1을 retrun하도록 solution 함수를 완성해주세요.
예시)
num1 | num2 | result |
3 | 2 | 1500 |
7 | 3 | 2333 |
1 | 16 | 62 |
✍️정답
function solution(num1, num2) {
var answer = parseInt((num1/num2)*1000);
return answer;
}
분수의 덧
첫 번째 분수의 분자와 분모를 뜻하는 numer1, denom1, 두 번째 분수의 분자와 분모를 뜻하는 numer2, denom2가 매개변수로 주어집니다. 두 분수를 더한 값을 기약 분수로 나타냈을 때 분자와 분모를 순서대로 담은 배열을 return 하도록 solution 함수를 완성해보세요.
예시)
numer1 | denom1 | numer2 | denom2 | result |
1 | 2 | 3 | 4 | [5,4] |
9 | 2 | 1 | 3 | [29,6] |
✍️정답
function solution(numer1, denom1, numer2, denom2) {
var answer = [];
var result_numer = numer1 * denom2 + numer2 * denom1;
var result_denom = denom1 * denom2;
var gcd = getGCD(result_numer, result_denom);
result_numer /= gcd;
result_denom /= gcd;
answer.push(result_numer);
answer.push(result_denom);
return answer;
}
function getGCD(a, b) {
while (b !== 0) {
var temp = b;
b = a % b;
a = temp;
}
return a;
}
빈 배열 answer를 선언합니다. 이 배열은 최종 결과를 담을 공간입니다.
두 분수를 더한 결과의 분자와 분모를 계산합니다.
numer1과 denom2를 곱한 값에 numer2와 denom1을 곱한 값을 더합니다.
계산된 결과를 result_numer 변수에 저장합니다.
denom1과 denom2를 곱한 값을 result_denom 변수에 저장합니다.
분자와 분모의 최대공약수를 구하여 기약 분수로 만듭니다.
getGCD 함수를 사용하여 result_numer와 result_denom의 최대공약수를 구합니다.
구해진 최대공약수를 gcd 변수에 저장합니다.
result_numer와 result_denom을 gcd로 나누어 최대공약수로 나눈 값으로 각각 업데이트합니다.
result_numer와 result_denom을 answer 배열에 순서대로 추가합니다.
answer 배열을 반환합니다.
함수 내에 정의된 getGCD 함수는 두 수의 최대공약수를 구하는 역할을 수행합니다. 이 함수는 유클리드 알고리즘을 사용하여 최대공약수를 구합니다. while 루프를 통해 두 수를 반복적으로 나누고 나머지를 구하고, 나머지가 0이 될 때까지 반복하여 최대공약수를 구합니다. 최종적으로 a 변수에 최대공약수가 저장되고 이를 반환합니다.
배열 두 배 만들기
정수 배열 numbers가 매개변수로 주어집니다. numbers의 각 원소에 두배한 원소를 가진 배열을 return하도록 solution 함수를 완성해주세요.
예시)
numbers | result |
[1, 2, 3, 4, 5] | [2, 4, 6, 8, 10] |
[1, 2, 100, -99, 1, 2, 3] | [2, 4, 200, -198, 2, 4, 6] |
✍️정답
function solution(numbers) {
var answer = [];
for (var i = 0; i < numbers.length; i++) {
answer.push(numbers[i] * 2);
}
return answer;
}
빈 배열 answer를 선언합니다. 이 배열은 최종 결과를 담을 공간입니다.
for 반복문을 사용하여 numbers 배열의 각 원소에 대해 작업을 수행합니다.
numbers 배열의 길이만큼 반복하면서 각 원소에 2를 곱한 값을 구합니다.
구해진 값은 answer 배열에 push 메서드를 사용하여 추가됩니다.
answer 배열을 반환합니다.