Level 0) 문자열, 수학, 배열, 조건문

Doozuu·2023년 1월 13일
0

프로그래머스 (JS)

목록 보기
17/183

📌 문제 1. 편지

function solution(message) {
    return message.length * 2;
}



📌 문제 2. 가장 큰 수 찾기

반복문을 통해 두 개씩 비교하면서 가장 큰 값을 찾았다.

function solution(array) {
    var answer = [];
    for(i=0;i<array.length-1;i++){
        if(array[i] > array[i+1]){
            answer = [array[i],i];
        }else{
            answer = [array[i+1],i+1];
        }
    }
    return answer;
}

Math.max()를 이용해 최댓값을 찾고, indexOf를 이용해 최댓값의 index를 찾아주면 더 빨리 풀 수 있다.

function solution(array) {
    let max = Math.max(...array);
    return [max, array.indexOf(max)];
}


📌 문제 3. 문자열 계산하기

eval()을 쓰면 아주 간단하게 해결된다.
하지만 실행 속도도 느리고 보안 문제도 있어서 권장하는 방식은 아닌듯 하다.
eval 참고 문서

function solution(my_string) {
   return eval(my_string);
}

eval() 기능을 해주는 함수를 대신 만들 수 있다.

function solution(my_string) {
    return Function(`return ${my_string}`)()
}



📌 문제 4. 배열의 유사도

forEach 반복문을 두 번 돌려 각 배열의 원소 값이 일치하면 카운트를 증가시키는 방식으로 풀었다.

function solution(s1, s2) {
    let answer = 0;
    s1.forEach(n => s2.forEach(x => x === n ? answer+=1 : 0));
    return answer;
}

includes를 통해 동일한 값만 filter하여 개수를 구하는 방식으로 풀면 더 간략하게 풀 수 있다.
(원래 filter를 이용하려고 했는데 includes를 이용하는게 생각이 안났음.)

function solution(s1, s2) {
  return s1.filter((v) => s2.includes(v)).length;
}
profile
모든게 새롭고 재밌는 프론트엔드 새싹

0개의 댓글