parseInt(x) : x의 자료형을 숫자(정수)로 바꿔줌, 숫자가 아니면 NaN 반환
String(x) : x의 자료형을 문자열로 바꿔줌.
function q1(num) {
let answer = 0;
while(num) {
answer += num % 10;
num = parseInt(num / 10);
// 1996 % 10 == 6 (나머지값)
// answer += 6
// num = 1996 ÷ 10 == 199
// 199 % 10 == 19
// answer += 19
// 19 % 10 == 9
// answer += 9
// answer == 1+9+9+6
}
return answer;
}
console.log(q1(1996)); // 1+9+9+6 == 25
function q2() {
const array = [10, 31, 1, 2, 3 ,4, 32];
return array.sort();
}
console.log(q2()); // 1,10,2,3,31,32,4
// 숫자 맨앞자리 기준으로 순서대로 정렬
function q4() {
const array = [10,20,30,40,50];
return array.reduce((prev, curr) => prev += curr, 0) / array.length;
// 150 ÷ 5 == 30
}
console.log(q4()); // 30
function q6(a,b,c,d) {
const array = [...arguments];
return array.reduceRight((prev, curr) => { // 4,3,2,1
return prev += curr; 4+3+2+1==10
}, 0);
}
console.log(q6(1,2,3,4)); // 10
function q8() {
let answer = 0;
const array = [1,2,3,4,5];
for(let i = 3; i < 8; i++) { // i 3~7
if(array.includes(i) && 0) { // array에 3~7이 포함되는 값 && 0
// &&로 인해 0을 포함하지 않기 때문에 for문은 false로 작동하지 않음
answer++; // answer 값 1씩 추가하지 못함
}
}
return answer;
}
console.log(q8()); // false가 떴기 때문에 정답 == 0
function q10(arr) {
let flag = false;
let n = 1;
while(!flag) { // false가 아니므로 실행
n++; // n++
for(let i = 1; i < arr.length; i++) { // i 1~3
if((arr[0] * n) % arr[i] === 0) { // 2 % arr[1~3] === 0 -> true (arr 배열 안의 값이 모두 짝수라서)
flag = true;
}
else {
flag = false;
break; // 2,6,8,14의 공통적인 배수일때 while문이 멈춤
}
}
}
return arr[0] * n // 즉, 2,6,8,14의 최소공배수가 정답 == 168
}
console.log(q10([2,6,8,14])); // 168