본문 바로가기

아래로 스크롤 해주세요!

My Reference Book

-

제가 배웠던것을 한곳에 정리해보았어요!

HTML

HTML 태그 톺아보기

HTML

자세히보기

CSS

CSS 속성 톺아보기

CSS

자세히보기

JAVASCRIPT

JS 실행문 톺아보기

JAVASCRIPT

자세히보기

최신댓글

TIP

오답노트_02 정리 👩🏻‍💻

by C0Di 2022. 10. 7.
728x90

오답노트

그저,,반성 🥲


1번

매개변수로 받아온 1996을 num에 넣어준뒤 num의 값을 10과 나눠 몫을 answer에 더해준뒤 num의 값을 num / 10을 해줘 나온 나머지를 num에 넣고 반복하는 문제입니다.

1. answer에는 0을 대입해줍니다. 2. num동안 while을 통해 반복하는데 3. answer에는 num(1996)을 10 나눠준 나머지를 더해줍니다. 4. num을 10이랑 나눠준 몫을 정수로 변환시켜준 후 num에 대입해줍니다. * 반복시 [1996/10=6],[199/10=9],[19/10=1],[1/10=1] 5.

function q1(num) {
    let answer = 0;
    while(num) {
        answer += num % 10;
        num = parseInt(num / 10);
    }
    return answer;
}

console.log(q1(1996));

2번

array에 있는 배열을 아무런 조건없이 앞 자리의 숫자를 기준으로 정렬해줍니다.

1. array 배열 안에는 10,31,1,2,3,4,32 가 있으므로 sort에 의해 앞자리를 기준으로 정렬하면
2. 답은 1,10,2,3,31,32,4가 출력

function q2() {
    const array = [10, 31, 1, 2, 3 ,4, 32];
    return array.sort();
}

console.log(q2());

3번

while을 통해 a의 값이 10미만이 될때가지 a를 1씩 더해 a의 값에 2를 나눈 나머지 값이 1이면 건너뛰고
이외에는 sum에 a의 현재값을 더한 후 sum을 출력하는 문제입니다.

1. array 배열 안에는 10,31,1,2,3,4,32 가 있으며
2. array에서 filter를 통해 x(배열)를 string을 통해 문자열로 변경후 .Length를 통해 길이가 2이상인 값만 배열로 반환합니다. 3. 답은 10,31,32

function q3() {
    const array = [10, 31, 1, 2, 3 ,4, 32];
    return array.filter(x => String(x).length >= 2);
}

console.log(q3());

4번

while의 조건에 부합할때까지 sum에 i값을 if 조건에따라 더해주는것을 반복해줍니다.

1. reduce를 사용하여 배열의 prev, curr을 가지고
2. 현재값을 이전값에 더해줍니다.
3. 현재값은 10,20,30,40,50을 각각 prev에 더해주게 되므로 150이 나오고
4. 150을 배열의 길이만큼 나눠주면
5. 답은 30

function q4() {
    const array = [10,20,30,40,50];
    return array.reduce((prev, curr) => prev += curr, 0) / array.length;
}

console.log(q4());

9번

i가 증가한 숫자가 배열에 있는지 찾고 0또한 있으면 answer를 1씩 증가시켜주는 문제입니다.

1. array에는 배열 1,2,3,4,5가 저장되어 있습니다.
2. i는 기본 3으로 시작해 8미만이 될때까지 i를 1씩 증가시켜주는 for문을 통해
3. 만약(if) array에 i값이 포함되어있는지와 0도 있다면 answer을 1씩 증가시킵니다.
4. 하지만 배열 자체에 0이 없기 때문에 더해주지 못하며
5. 답은 0이 나옵니다.

function q8() {
    let answer = 0;
    const array = [1,2,3,4,5];
    for(let i = 3; i < 8; i++) {
        if(array.includes(i) && 0) {
            answer++;
        }
    }
}
    return answer;
console.log(q8());

10번

flag가 false로 변할때까지 n을 1씩 증가시켜 for을 통해 if로 flag를 true로 할지 false로 할지 결정짓는 문제입니다.

1. flag가 flag가 false가 아닐때까지 while을 통해 하단의 내용을 반복합니다 2. n을 1씩 증가시켜 3. for을 통해 i를 1부터 arr의 배열의 길이 만큼 1씩 증가시키는데 4. arr의 i값으로 나눌때 계속 첫번째 자리로 나눴을때 나머지가 0이 나오질 않으면 flag를 false로 유지시키고 break를 통해 빠져나오게 되어서 계속 반복하게 됩니다. 4. 그렇게 만약 arr의 0번째(2) * n(84)한 값을 arr의 배열의 6이랑 나눴을때 나머지가 0 이면 5. flag 를 true로 만들어 while의 실행을 멈추고 6. arr 0번째와 n을 곱한값을 반환 후 출력합니다. 7. 답은 168

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]));
728x90
반응형

댓글

#HASH_TAGS

-

1

공부 오늘 조업 마감했습니다. 숙제가 다양해서 너무 좋아요 오늘은 내가바로 오징어! 제이쿼리 오징어 두마리 포획 완료 내일은 즐거운 월요일 코드 이건 또 뭐람 멈추지 않는 ' j ' 시리-즈 코딩 Method HTML ImageSlideEffect 필터선택자 scroll-snap-align 화사한가요? 다크모드 오징어 한마리 수확 완료! 메서드 오징어 1Kg 당 3000원 울적하니 꽃을 달아봤습니다 오늘도 웹표준은.. 슬라이드 결과 : 월요일 scroll-snap-type 선택해주세요 JQuery