10/5 문제
twoSum함수에 숫자배열과 '특정수'를 인자로 넘기면, 더해서 '특정 수'가 나오는 index를
배열에 담아 return하라.
nums:숫자배열
target: 두 수를 더해서 나올 수 있는 합계
return: 두 수의 index를 가진 숫자 배열
예를 들면
nums =[4,9,11,14]
target=13
nums[0]+nums[1]=4+9=13
그러면 [0,1]이 return 되어야 한다.
const twoSum=(nums, target) =>{
for(let i=0; i<nums.length; i++){
for(let j=0; j<nums.length; j++){
if(nums[i]+nums[j]===target){
let array=[i,j]
return array;
}
}
}
};
const nums=[4,9,11,13]
const target=13;
twoSum(nums,target);
model solution
function twoSum(nums, target) {
for (let i = 0; i < nums.length-1; i++) {
for (let j = i+1; j < nums.length; j++) {
if (nums[i] + nums[j] === target) {
return [i, j];
}
}
}
}
10/6문제
reverse 함수에 정수인 숫자를 인자로 받는다.
그 숫자를 뒤집어서 return하라
x:숫자
return: 뒤집어진 숫자를 반환
x:1234
return:4321
x:-1234
return:-4321
x:1230
return:321
const reverse = x => {
const reverseNums=parseFloat(x.toString().split("").reverse().join(""))* Math.sign(x);
return parseInt(reverseNums);
};
console.log(reverse(-1234));
1.x는 숫자이므로 문자열로 바꿔준다.'1234'
2.split을 통해 숫자를 쪼개준다.
3.reverse를 통해 숫자를 거꾸로 배열
4.join을 통해 쪼개진문자열을 붙여준다
5.parseFloat을 쓰는 이유는 0이 앞에 위치해 있는 경우 0을 빼주기 위해
이는 정수대신 실수로 변환시키기에 소숫점 이하도 살려준다.
6. Math.sign(x) 값이 음수인지, 양수인지를 살려준다.
Model solution
function reverse(x) {
let minus = false;
if (x < 0) {
x *= -1;
minus = true;
}
let numText = x.toString();
let result = '';
for (let i = numText.length-1; i >= 0; i--) {
result += numText[i];
}
result = minus ? result * -1 : Number(result);
return result;
}
10/8문제
문제:숫자인 num을 인자로 넘겨주면, 뒤집은 모양이 num과 똑같은지 여부를 반환하라
num: 숫자
return: true or false
const sameReverse = num => {
let string= String(num);
let reverseString='';
for(let i= (string.length-1); i>=0; i--){
reverseString+=string[i];
}
if(reverseString===string){
return true;}
else{
return false;
}
};
sameReverse(1234);