프로그래머스: 코딩 기초 트레이닝 javascript 81~85문제

2의 영역

https://school.programmers.co.kr/learn/courses/30/lessons/181894

function solution(arr) {
    const idx = []
    
    if (arr.indexOf(2) === -1) {
        return [-1]
    }
    for (let i = 0; i < arr.length; i++) {
        if (arr[i] === 2) {
            idx.push(i)
        }
    }
    return arr.slice(idx[0], Math.max(...idx)+1);
}
function solution(arr) {
    const from = arr.indexOf(2);
    const end = arr.lastIndexOf(2);

    return from === -1 ? [-1] : arr.slice(from, end+1);
}

lastIndexOf 분명 배웠었는데 기억이 안 났다..ㅋㅋ 다시 기억해야지ㅠㅠ

 

 


 

문자 개수 세기

https://school.programmers.co.kr/learn/courses/30/lessons/181902

function solution(my_string) {
    let num = Array.from({length: 52}, () => 0); 
    const lst = [...my_string]
    
    for (let i = 0; i < lst.length; i++) {
        if (lst[i] === lst[i].toUpperCase()) {
            num[lst[i].charCodeAt() - 65] += 1
        } else {
            num[lst[i].charCodeAt() - 71] += 1
        }
    }
    return num;
}

 

 


두 수의 합

https://school.programmers.co.kr/learn/courses/30/lessons/181846?language=javascript 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

function solution(a, b) {
    return BigInt(a) + BigInt(b) +"";
}

 


조건 문자열

https://school.programmers.co.kr/learn/courses/30/lessons/181934

function solution(ineq, eq, n, m) {
    if (ineq === ">") {
        if (eq === "=") {
            return n >= m ? 1 : 0
        } else {
            return n > m ? 1 : 0
        }
    } else {
        if (eq === "=") {
            return n <= m ? 1 : 0
        } else {
            return n < m ? 1 : 0
        }
    }
}

https://school.programmers.co.kr/learn/courses/30/lessons/181934

 

const operations = {
  '>=': (n, m) => n >= m,
  '<=': (n, m) => n <= m,
  '>!': (n, m) => n > m,
  '<!': (n, m) => n < m,
};

function solution(ineq, eq, n, m) {
  const op = operations[ineq + eq];
  return Number(op(n, m));
}

 

객체를 이용해서 푸니까 매우 깔끔한 것 같다.

 

 


배열 만들기 4

https://school.programmers.co.kr/learn/courses/30/lessons/181918?language=javascript 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

function solution(arr) {
    let stk = [];
    let i = 0
    while (i < arr.length) {
        if (stk.length === 0 || arr[i] > stk[stk.length-1]) {
            stk.push(arr[i])
            i += 1
        } else {
            stk.pop()
        }
    }
    return stk;
}

 

 

 

 

 

comment