프로그래머스 코딩 테스트 연습 문제 Lv.0 JS - 5문제(문자열안에 문자열, OX퀴즈, 자릿수 더하기, n의 배수 고르기, 숫자 찾기)

찐새·2023년 4월 4일
0

코딩테스트

목록 보기
23/53
post-thumbnail

문자열안에 문자열

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

function solution(str1, str2) {
    return str1.includes(str2) ? 1:2;
}
  • includesstr1str2를 포함하고 있는지 간단하게 확인한다.

OX퀴즈

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

function solution(quiz) {
  const answer = [];
  quiz.forEach((item) => {
    const splitItem = item.split("=");
    const expectedResult = +splitItem.pop();
    const realResult = new Function("return " + splitItem[0])();
    if (expectedResult === realResult) {
      answer.push("O");
    } else {
      answer.push("X");
    }
  });
  return answer;
}
  • =를 기준으로 문자열을 split한 후 마지막 아이템을 숫자로 치환한다.
  • 첫 아이템은 수식으로, new Function을 사용하여 계산한다.
  • 처음에는 eval을 사용했으나, 사용을 권장하지 않아 대체제로 바꾸었다.

자릿수 더하기

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

function solution(n) {
  const answer = [...String(n)].reduce((x, y) => +x + +y, 0);
  return answer;
}
  • 문자열 변환 후 배열로 만들어 reduce로 누적 합을 도출했다.

n의 배수 고르기

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

function solution(n, numlist) {
  return numlist.filter((i) => !(i % n));
}
  • filternumlist의 요소가 n으로 나누어 떨어지는 것만 골라냈다.

숫자 찾기

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

function solution(num, k) {
  const numIdx = num
    .toString()
    .split("")
    .indexOf(k + "");
  return numIdx !== -1 ? numIdx + 1 : -1;
}
  • num을 문자열로 치환 후 배열화, 문자화한 k의 인덱스를 찾는다.
  • 인덱스가 -1(인덱스 없음)이 아니면 인덱스 +1, 아니라면 -1 반환
profile
프론트엔드 개발자가 되고 싶다

0개의 댓글