[프로그래머스] Lv.1 문자열 내 p와 y의 개수 (JavaScript)

혜린·2022년 2월 4일
0
post-thumbnail

🔐 문제

대문자와 소문자가 섞여있는 문자열 s가 주어진다. s에 있는 p의 개수와 y의 개수가 같으면 True, 다르면 False를 return하는 함수 solution을 완성하라.

  • 제한조건
    • p, y 모두 하나도 없는 경우, True
    • 개수를 비교할 때 대문자와 소문자는 구별하지 않음

  • Example


🔑 풀이

function solution(s){
    return (s.toLowerCase().split('p').length) === (s.toLowerCase().split('y').length);
}

📍 풀이과정

  1. toLowerCase() 혹은 toUpperCase()를 사용해 대문자, 소문자 중 하나로 통일시켜준다.
  2. p를 기준으로 문자를 나누어준 뒤, 길이를 구하면 p의 개수 + 1 값을 구할 수 있다.
  3. y도 마찬가지로 구해준뒤, 비교해 참과 거짓을 판별해준다.


🔑 다른풀이

function solution(s){
    const arr = s.toUpperCase().split('');
    return arr.filter(v => v === 'P').length === arr.filter(v => v === 'Y').length; 
}
  • filter() 메서드를 사용해 배열 내에 각각 'p'문자와 'y'문자를 찾아 새로운 배열을 만들어준 뒤, 길이로 비교해준다.


💡 배운점

1. split()

String.split(seperator)
  • String 객체를 지정한 구분자를 이용하여 여러 개의 문자열로 나눔

2. 대문자, 소문자 변환

  • 대문자 변환 : toUpperCase()
  • 소문자 변환 : toLowerCase()

3. filter()

arr.filter(callback, thisArg)
  • 콜백함수의 return값이 True인 요소만으로 새로운 배열을 생성한다.
profile
FE Developer

0개의 댓글