[TIL] 문자열 내 특정 문자 찾아서 비교하기

sooyoung choi·2023년 10월 17일
1

algorithm

목록 보기
1/10
post-thumbnail

🔍 문제

  • 대문자와 소문자가 섞여있는 문자열 s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True
  • , 다르면 False를 return 
  • 'p', 'y' 모두 하나도 없는 경우는 항상 True를 리턴
  • 단, 개수를 비교할 때 대문자와 소문자는 구별하지 않습니다.
  • 예를 들어 s가 "pPoooyY"면 true를 return하고 "Pyy"라면 false를 return

⌨️ 입출력 예시


🙋‍♀️ 내가 푼 방식

  • filter 써보려다가 길이를 구해야해서 배열 안에 넣어줘야 했기 때문에
  • forEach로 돌며 p, P, y, Y랑 일치하는 문자 찾아 배열에 넣어주었다!
function solution(s){
    
    // 파라미터 s의 문자열을 넣어줄 배열
    let arr = [];
    // 'p', 'y' 길이 넣어줄 변수
    let pArr = [];
    let yArr = [];
    
    // 파라미터 s 문자열을 배열에 넣어주기
    arr = [...s];
    // console.log(arr);
    
    // arr 배열을 돌면서 
   arr.forEach((str)=> {
       // 만약 arr 하나하나 중에 p 또는 P랑 같다면
       if(str === 'p' || str === 'P') {
           // 그 글자를 pArr에 넣어주기
           pArr.push(str);
        // 그게 아니고 만약 arr 하나하나 중에 y 또는 Y랑 같다면
       } else if(str === 'y' || str === 'Y') {
           // 그 글자를 yArr에 넣어주기
           yArr.push(str);
       }
   })
    
    // console.log(pArr);
    // console.log(yArr);
        
    // p, P가 들어있는 배열의 길이와
    // y, Y가 들어있는 배열의 길이 비교해서 같으면
    if(pArr.length === yArr.length) {
        // true 값 반환
        return true;
    // 같지 않으면 false 반환    
    } else {
        return false;
    }
}

0개의 댓글