본문 바로가기
EX

세 번째 오답노트!

by 코빈_ 2022. 10. 21.

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

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


첫 번째 문제

const arr = [1,1,3,3,0,1,1]

function solution(arr) {
    return arr.filter((item, idx) => item !== arr[idx+1]);     // item 순서와 arr+1에서의 순서를 서로 나열했을 때 중복되는 것을 제거하라
}                                                                                       // 1,1,3,3,0,1,1와 1,3,3,0,1,1,x x는 존재하지 않는 값

console.log(solution(arr))      // 1,3,0,1

두 번째 문제

const arr = "webstoryboy";
        
function solution(s) {
    const answer = '';
    return s.length % 2 == 1 ? s[s.length/2 | 0] : s.slice(s.length/2 - 1, s.length/2 + 1);    //  s의 갯수는 11개 11 나누기 2했을 때 1이라면, 삼향 연산자고 바로 성립이 되니 11/2 | 0(|0 이 문법은 정수로 반환) = 5 5번째 문자를뽑아라
}

console.log(solution(arr));    // o

세 번째 문제

const string = "webstoryboy";

function solution(s) {
    const answer = '';      // 상수를 변하지 않으니 변수 let으로 바꿔줌

    for(let i = s.length -1; i>=0; i--) {   // -> 반대로 쓰기
        answer = answer + s[i];    // '' + 반대로 쓴 걸 합쳐
    }
    return answer;
}

console.log(solution(string))    // yobyrotsbew

네 번째 문제

const num = [5,9,7,10];

function solution(arr) {
    let sm = arr[0], index = 0;

    for(i=0; i<arr.length; i++) {
        if(arr[i] < sm) {      // arr[i] 값중 sm 보다 작은게 있다면
            sm = arr[i];        // sm은 arr[i]이다.
            index = i;            // i = 5
        }
    }
    arr.splice(index, 1);       // splice는 그 값을 제외한 걸 반환
    return arr;                     // 답은 9,7,10
}
console.log(solution(num))

다섯 번째 문제

const num = "webstoryboy";

function solution(s) {
    let answer = s.split("");   // s = webstoryboy이고 split"" 이니 각각 나눠줌 "w","e","b"..."y"

    for(i=0; i<answer.length-4; i++) {       // answer 갯수는 11개이며 거기에서 4를 뺸 값 7이고 <니깐 0~6까지
        answer[i] = "*";                              //  0~6까지 i값에르 *로 변환
    }
    return answer.join("");    // 답은 *******yboy
}

console.log(solution(num))

여섯 번째 문제

function solution(arr1, arr2) {
    let answer = [];
    arr1.sort();            // sort는 올바르게 정렬해라 그래서 arr1 = 1,2,3,5,9
    arr2.sort();            // sort는 올바르게 정렬해라 그래서 arr2 = 2,3,5,7,8
    let p1 = p2 = 0;     // p1 p2는 0

    while(p1 < arr1.length && p2 < arr2.length) {
        if(arr1[p1] == arr2[p2]) {      // 정렬한 수가 같을 때 한 칸씩 진행
            answer.push(arr1[p1++]);
            p2++
        }
        else if(arr1[p1] < arr2[p2]) p1++;   // 한칸 씩 진행했을 때 p1 < p2 이면 한칸 씩
        else p2++;                                       // 아니면 p2를 한칸 씩 진행
    }
    return answer;      // 답은 2,3,5
}

let a = [1,3,9,5,2];
let b = [3,2,5,7,8];
console.log(solution(a,b));

댓글


INFORMATION

javascript

css

html