본문 바로가기
EX

아마도..? 꼴찌의 오답 노트 이야기 두 번째 이야기

by 코빈_ 2022. 10. 10.

오답 노트... 두 번째 이야기

나의 오답 노트 작성.. 여기 있는 것들은 대체로 이해가 가지만 좀 만 변형해서 나온다면 어떨까나..?(땀 좀 흘리겠습니다..)


첫 번째 문제

function solution(arr) {
    let answer = [];
    let sum = 0, min = 1000;
    for(let x of arr) {
        if(x % 2 ===1) {    // arr 배열 중 2를 나눴을 때 1이 되는 값 77, 41, 53, 85
            sum += x;         // 나온 값 더하기 256
            if(x < min) min = x;
        }
    }
    answer.push(sum);   // sum = 256
    answer.push(min);    // min = 41
    return answer;          // 256, 41
}

arr = [12, 77, 38, 41, 53, 92, 85];
console.log(solution(arr));

두 번째 문제

function solution(arr) {
    let answer = arr;
    let sum = answer.reduce((a,b) => a + b, 0);
    for(let i=0; i<8; i++) {              // i는 7까지
        for(let j=i+1; j<9; j++) {       // j는 8까지
            if((sum - (answer[i] + answer[j])) == 100) {    // sum 합 한 값 140에 각 배열 중 합 한 값을 뺏을 때 100이 되는 것
                answer.splice(j, 1);    // 15 j에서 처음으로 나오는 값
                answer.splice(i, 1);    // 25 i에서 처음으로 나오는 값
            }
        }
    }
    return answer;
}

let arr = [20, 7, 23, 19, 10, 15, 25, 8, 13];
console.log(solution(arr));

세 번째 문제

function solution(s, t) {
    let answer = s.split(t).length;    // split 문자열에서 원하는 값을 추출하여 배열로 반환 t는 'a'이므로 'j', 'v', 'scriptre', 'ctvue' 
    return answer-1;                       // 나온 갯수에서 -1 = 3 답은 3
}

let str = "javascript react vue";
console.log(solution(str, 'a'));

네 번째 문제

function solution(s) {
    let answer = "";
    for(let x of s) {                                                                        // s = StuDY인데 이걸 x에 대입
        if(x === x.toUpperCase()) answer += x.toLowerCase();    // x중 대문자 인 것이 존재하면 소문자로 변환
        else answer += x.toUpperCase();                                      // 아니면 또 대문저로 전환
    }
    return answer;    // 답은 sTUdy
}
console.log(solution(StuDY));

다섯 번째 문제

function solution(s) {        // s 는 ["teacher", "time", "student", "beautiful", "good"];
    let answer = "", max = Number.MIN_SAFE_INTEGER;
    for(let x of s) {               // s를 x에 대입
        if(x.length > max) {    // x 갯수 5개이며, 5 > max일 때
            max = x.length;      // max는 5이다
            answer = x;            // 5 이상중 제일 문자가 많은 것
        }
    }
    return answer;    // 답은 beautiful
}
let str = ["teacher", "time", "student", "beautiful", "good"];
console.log(solution(str));

여섯 번째 문제

function solution(s) {    // s는 study
    let answer;
    let mid = Math.floor(s.length/2)    // s갯수는 5개 그중 5/2를 하고 Math.floor는 소수점을 버린다. 그러면 2

    if(s.length%2===1) answer = s.solution(mid, mid-1);    // s.length은 5이며 5에서 2를 나누고 1이 있는 값이 있다면 mid는 2, mid-1은 1
    else answer = s.subString(mid-1, mid+1);

    return answer;    // 1은 t, 2는 u 답은t,u
}
console.log(solution("study"));

일곱 번째 문제

function solution(s) {     // s는 ksekkset
    let answer = "";
    for(let i=0; i<s.length;  i++) {                      // s.length 갯수는 8이며 <는 7까지임을 나타냄
        if(s.indexOf(s[i]) === i) answer+=s[i];    // indexOf()는 특정 문자 위치를 찾고 숫자로 반환한다. s[i]) === i는 서로 대입했을 때 s[i] 그 값을 점점 더한다.
    }
    return answer;    // 답은 kset
}
console.log(solution("ksekkset"));

여덟 번째 문제

function solution(s) {
    let answer;
    answer = s.filter(function(v,i) {
        return s.indexOf(v) === i;
    });
    return answer;
}
let str = ["good", "time", "good", "time", "student"];
console.log(solution(str));
위 문제와 비슷합니다.

아홉 번째 문제

function solution(s) {
    let answer;
    let stack = [];
    for(let x of s) {
        if(x === ')') {
            while(stack.pop() !== '(');
        }
        else stack.push(x);
    }
    answer = stack.join('');
    return answer;
}

let str = "(A(BC)D)EF(G(H)(IJ)K)LM(N)";
console.log(solution(str));
사실 아직 잘 모르겠습니다..

열 번째 문제

function solution(n, k) {
    let answer;
    let queue = Array.from({length : n}, (v, i) => i+1);
    while(queue.length) {
        for(let i=1; i<k; i++) queue.push(queue.shift());
        queue.shift();
        if(queue.length === 1) answer = queue.shift();
    }
    return answer;
}

console.log(solution(8, 3));
사실 아직 잘 모르겠습니다..

'EX' 카테고리의 다른 글

세 번째 오답노트!  (1) 2022.10.21
아마도..? 꼴찌의 오답 노트 이야기  (5) 2022.10.01

댓글


INFORMATION

javascript

css

html