[Lv.1]문자열 내 p와 y의 개수 (☆☆)

Jihyun-Jeon·2022년 4월 22일
0

문제 : https://programmers.co.kr/learn/courses/30/lessons/12916
체감난이도 ☆☆ (쉽게 넘 풀었지만 다른 더 좋은 방법이 많은 것 같다)

🔶내가 한 방법 - filter 사용

function solution(idx) {
  const CntP = [...idx].filter((el) => el === 'p' || el === 'P').length;
  const CntY = [...idx].filter((el) => el === 'y' || el === 'Y').length;
  return CntP === CntY;
}

🔶 다른 사람 방법

방식1

  • 처음부터 모든 문자를 대문자로 통일 시켜놓은 후 시작함
  • string → arr로 바꿀 수 있는 메소드인 split 활용
function solution(idx) {
  return (
    idx.toUpperCase().split('P').length === idx.toUpperCase().split('Y').length
  );
}

방식2

  • 정규식 이용
function solution(idx) {
  // console.log(idx.match(/p/gi)); // ["p","P"]
  return (idx.match(/p/gi) || []).length === (idx.match(/y/gi) || []).length;
}

🔶 피드백

  1. 뭔가 다른게 두개가 있으면 바로 풀지말고 먼저 맞추고 시작한다! (정렬을 하고 들어감)
  2. 인자의 타입과 반환 결과를 보고 어떤 메소드를 쓸지 결정하는게 좋음!
  3. 정규식 넘 어렵다.
  • match() : 스트링에 대한 메소드임. 정규식을 인자로 받음. "유사배열"로 리턴됨.
  • g : 매치되는 모든 것을 검색, i:대소문자 구분 안함

0개의 댓글