ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [TIL] 알고리즘 풀이 - 프로그래머스 '문자열 내 p와 y의 개수문제'
    IT 지식 2021. 5. 1. 16:31
    728x90

    문제 소개

    더보기

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

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

    제한사항

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

     

    문제 풀이

     

    더보기
    function solution(s){
       var count_p = 0; //p의 개수 카운트
        var count_y = 0; // y의 개수 카운트
    
        for(var i=0; i<s.length; i++){
            if(s[i] === 'p' || s[i] === 'P'){
                count_p++;
            }
            if(s[i] === 'y' || s[i] === 'Y'){
                count_y++;
            }
        }
        return (count_p === count_y) ? true : false;
    // 출처: https://shinjekim.github.io/algorithms/2018/09/18/javascript-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-Level1-%EB%AC%B8%EC%9E%90%EC%97%B4-%EB%82%B4-p%EC%99%80-y%EC%9D%98-%EA%B0%9C%EC%88%98/
    }

     

    느낀 점 및 배운 점

    문제 풀이를 보니 엄청 쉬운 편에 속하는 문제였다. 단순한 반복문을 바탕으로 개수를 비교해주면 되는 거였다. 문제를 너무 어렵게 생각했는지, 아니면 문제에 지레 겁을 먹었는지, 이런 단순한 생각을 해내지 못한 것이 많이 아쉽다. 

    이번 문제를 풀면서 match 라는 메소드를 알게 되었다. match 메소드는 인자에 정규식을 받아 문자열과 정규식이 일치하는 부분을 검색하는 메소드이다. 결과값으로는 다음을 반환한다.

     

    결과값

    문자열이 정규식과 일치하면, 일치하는 전체 문자열을 첫 번째 요소로 포함하는 Array를 반환한 다음 괄호 안에 캡처된 결과가 옵니다. 일치하는 것이 없으면 null이 반환됩니다.

     

    최근 업무 중에 정규식을 활용하는 빈도가 높아지고 있다. 그런 만큼  match 메소드를 잘 활용한다면, 실무에서도 좀 더 편하고 강력한 코드를 작성할 수 있을 것 같다. 이와 더불어 정규식에 대한 공부와 활용이 좀 더 병행이 되어야겠다.

    728x90

    댓글

Designed by Tistory.