본문 바로가기
알고리즘 문제

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

by rinny01 2025. 1. 2.
반응형

문제

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

입출력 예

s answer
"pPoooyY" true
"Pyy" false
  • 'p'의 개수 2개, 'y'의 개수 2개로 같으므로 true를 return 합니다.
  • 'p'의 개수 1개, 'y'의 개수 2개로 다르므로 false를 return 합니다.

과정

사실 문제를 읽고 무슨말인지 하나도 모르겠어서 입출력예시를 한참동안 들여다봤다...

결론은 ! 문자열에서 p의 개수와 y의 개수가 동일하면 true, 동일하지 않으면 false를 출력하라는 말이다.

이걸 깨닫는데 한참 걸린 나는 바보다..ㅠㅠㅠ

  • 대소문자는 중요하지 않다고 했기 때문에 모두 소문자 또는 대문자로 변경해준다.
  • 변경한 문자에서 p의 개수와 y의 개수를 구한다.
  • 개수가 동일하면 true, 그렇지 않으면 false를 출력한다.

풀이

function solution(s){
    s = s.toUpperCase();
    console.log(s)
    var p = 0;
    var y = 0;
    for(let i=0; i<= s.length; i++){
        if(s[i] =="P") p++;
        if(s[i] =="Y") y++;
    }
    if(p === y) return true;
    else return false;
}
console.log(solution("pPoooyY"))
  • toUpperCase(); : 문자를 모두 대문자로 바꾸어준다.
    • PPOOOYY가 되겠다.
  • 받아온 문자열의 길이까지 P와 Y를 찾아 개수를 더해준다.
  • 반복문이 끝난 후 변수p 와 y가 동일한지 확인한후
  • true / false 값을 리턴해준다.

느낀점

이렇게 정리하니 되게 쉬워보인다...

하지만 나는 이 문제를 푸는데 30분이 넘게걸린거같다😅😅

정리하니 허무하지만 쪼금 뿌듯하다 ^0^

ㅠㅠㅠ차근차근히 생각하고 해보자.

반응형
LIST