Javascript 오답노트 03
Javascript 오답노트 정리 세 번째 시간입니다.
2022년 10월 6일 간단하게 10문제 쪽지시험을 봤습니다.
01. 다음의 결괏값을 작성하시오.
{
function q1(num) {
let answer = 0;
while(num) {
answer += num % 10;
num = parseInt(num / 10);
}
return answer;
}
console.log(q1(1996));
}
while문에 대한 문제입니다.
1996을 대입해주고 시작합니다. true이니 아래로 갑니다.
1996 % 10 = 6 이 나오고, 1996/10 =199.9가나오므로 parseInt에 의해서 199로 반환됩니다.
다시 위로 올라가서 199 % 10 = 9 , 199 / 10 = 19가 나오고 이 과정을 num 0이 나올때까지 반복합니다.
그럼 리턴값은 6+9+9+1 = 25가 나옵니다.
정답 확인하기
02. 다음의 결괏값을 작성하시오.
{
function q2() {
const array = [10, 31, 1, 2, 3 ,4, 32];
return array.sort();
}
console.log(q2());
}
sort에 대한 문제입니다.
앞의 자리수를 보고 비교해서 정렬 해줍니다.
1 10 2 3 31 32 4 순으로 나옵니다.
정답 확인하기
03. 다음의 결괏값을 작성하시오.
{
function q3() {
const array = [10, 31, 1, 2, 3 ,4, 32];
return array.filter(x => String(x).length >= 2);
}
console.log(q3());
}
filter와 String에 대한 문제입니다.
Stirng은 숫자를 문자열로 바꿔주므로 2와 같거나 큰 숫자인 2자리 숫자만 출력됩니다.
정답 확인하기
05. 다음의 결괏값을 작성하시오.
{
function q5() {
return "abcdefghijklmnop".match(/[d-f]/g);
}
console.log(q5());
}
match와 정규식에 대한 문제입니다.
/[d-f]/g는 d~f까지 배열로 반환한다는 의미입니다.
배열기호를 잊지맙시다.
정답 확인하기
09. 다음의 결괏값을 작성하시오.
{
function q9() {
const obj = {
a : "가",
b : "나",
c : "다",
};
const { c : one, b : two, a : three } = obj;
return one + two + three;
}
console.log(q9());
}
간단한 문제입니다만 낚시를 주의해야합니다.
정답 확인하기
10. 다음의 결괏값을 작성하시오.
{
function q10(arr) {
let flag = false;
let n = 1;
while(!flag) {
n++;
for(let i = 1; i < arr.length; i++) {
if((arr[0] * n) % arr[i] === 0) {
flag = true;
}
else {
flag = false;
break;
}
}
}
return arr[0] * n
}
console.log(q10([2,6,8,14]));
}
while(!false)는 true이니 진행합니다.
n= 2일때 시작해서 for문들어가고 i 123 대입해보면 조건안맞아서 탈락 else로 갑니다
n =3시작 i에 123 대입 시 조건에 안맞아서 탈락 이런식으로 반복합니다.
while문을 탈출하기 위해서는 !가있어서 false가 아닌 true조건문으로 for문을 탈출해야합니다.
그 조건을 만족시키려면 i에 1 2 3을 넣었을때 나머지가 모두 0이 나오는 조건을 충족시키게 해야합니다.
따라서 6 8 14의 최소공배수를 구하면 168이 나옵니다.
2 * n = 168이 나와야 하므로 n은 84가 됩니다.
따라서 2*84의 리턴값은 168이 됩니다.
'오답 노트' 카테고리의 다른 글
Javascript 오답 노트 04 (1) | 2022.10.23 |
---|---|
Javascript 오답 노트 02 (4) | 2022.10.02 |
Javascript 오답 노트 01 (3) | 2022.10.02 |
댓글