Skip to content

Latest commit

 

History

History
38 lines (26 loc) · 1.62 KB

문자열_내_개수.md

File metadata and controls

38 lines (26 loc) · 1.62 KB

문자열 내 p와 y의 개수

프로그래머스

문제

대문자와 소문자가 섞여있는 문자열 s가 주어집니다. s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 return 하는 solution를 완성하세요. 'p', 'y' 모두 하나도 없는 경우는 항상 True를 리턴합니다. 단, 개수를 비교할 때 대문자와 소문자는 구별하지 않습니다.

예를 들어 s가 "pPoooyY"면 true를 return하고 "Pyy"라면 false를 return합니다.

제한사항

  • 문자열 s의 길이 : 50 이하의 자연수
  • 문자열 s는 알파벳으로만 이루어져 있습니다.

제출 코드

const solution = (s) => {
  const lowerString = s.toLowerCase();
  const pList = lowerString.match(/p/g);
  const yList = lowerString.match(/y/g);
  const pCount = pList ? pList.length : 0;
  const yCount = yList ? yList.length : 0;
  return pCount === yCount ? true : false;
};

기본 전제

  • 대소문자 여부를 신경쓰면 안 되므로 미리 하나로 통일해야 한다.

풀이 과정

  1. 매개변수 stoLowerCase() 메소드로 소문자로 변환한다.
  2. pListyList에 각각 py를 담은 배열을 저장한다. 정규식에 글로벌 옵션을 사용해 문자열 전체를 탐색한다.
  3. 매칭되는 문자열이 하나도 없을 경우 null 값이 담기므로, 만약 null이라면 대신 0을, 아니라면 배열의 길이를 반환한다.
  4. 최종적으로 pCountyCount를 비교하여 같으면 true, 다르면 false를 반환한다.