프로그래밍/함수형 프로그래밍

[함수형 프로그래밍 연습하기] 프로그래머스 Lvel1 - 문자열 내 p와 y의 개수

mhko411 2021. 8. 9. 09:44
728x90

https://programmers.co.kr/learn/courses/30/lessons/12916

 

코딩테스트 연습 - 문자열 내 p와 y의 개수

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

programmers.co.kr


접근

먼저 입력받은 문자열을 모두 소문자로 변환한다. 그리고 한 개의 문자와 문자열을 전달받아 문자열 내의 문자의 개수를 반환하는 함수를 만들었다. 이후 반환된 개수를 변수에 저장하고 두 개의 변수를 비교하여 같으면 true, 다르면 false를 반환한다.

 

구현

- 입력받은 문자열 s를 소문자로 모두 변환한다.

- countWord라는 함수에서 한 개의 문자와 문자열을 입력받아 문자열 내의 문자의 개수를 카운트하여 반환한다.

- 반환된 개수를 a와 b 변수에 저장하고 이를 비교하여 true 또는 false를 반환한다. 

function countWord(w, str) {
    let count = 0;
    for (let s of str) {
        if(isEqual(w, s)) count += 1;
    }
    return count;
}

function isEqual(a, b) {
    return a === b;
}
function solution(s){
    let answer = false;
    s = s.toLowerCase();
    let a = countWord('p', s);
    let b = countWord('y', s);
    if (isEqual(a, b)) answer = true;

    return answer;
}