본문 바로가기

코테/프로그래머스

[프로그래머스] 문자열 내 p와 y의 개수

728x90

[ Level 1 ] 문자열 내 p와 y의 개수

문제 링크

구분

코딩테스트 연습 > 연습문제

풀이 요약

문자열 내의 원소 개수를 비교하는 문제

나의 풀이

function solution(s){
    let cnt=0;
    let lowerArr=s.toLowerCase().split("");
    for (let x of lowerArr){
        if(x==="p") cnt++
        else if (x==="y") cnt--
    }
    return cnt===0? true :false
	  //return cnt===0 위와 같은 결과를 반환합니다. 
}
  1. 문자열 s를 소문자로 변환하고 , 각 문자를 배열의 원소로 분리하기 위해 toLowerCase 메서드와 split 메서드를 사용했습니다.
  2. 반복문을 통해 각 원소를 검사하면서 p인 경우 cnt를 1 증가시키고 y인 경우 cnt를 1 감소 시킵니다.
  3. cnt가 0인경우는 p와 y의 개수가 동일하다는 의미이므로 true를 반환하고 그렇지 않은 경우 false를 반환합니다.

배운점

reduce 메서드를 사용하여 본 문제를 더 간결하게 풀이할 수 있습니다.

reduce는 누산기 기능을 하기 때문에 변수를 따로 선언하지 않아도 됩니다 !

function solution(s){
    return [...s.toLowerCase()].reduce((acc, cur) => {
        if(cur ==='p') return acc + 1;
        else if(cur ==='y') return acc - 1;
        return acc;
    }, 0) ? false : true;
}
728x90