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

이명진·2022년 7월 1일
0

코드카타

목록 보기
31/68

문자열 내의 p와y의 개수를 찾는다 p와 y의 개수가 같을 경우,아예 없을 경우 true 리턴 나머지는 false이다.
indexOf함수를 읽었을때 매개변수 2번째 조건에서 원하는 자리수에서 찾을수 있다는 점을 써먹을 수 있지 않을까 생각하여 다시 정의를 찾아보게되었다.
정의를 쭉 읽다보니 아니나 다를까
indexOf()를 사용하여 문자열 내의 특정 문자 숫자 세기 라는 것이 있었다.

어떻게 사용했나 쭉 보면서 코드에 적용해보았다.

내가 푼 로직이다.

function solution(s){
    var answer = true;
  let pCount = 0;
  let yCount = 0;
  let word = s.toUpperCase()
let findP = word.indexOf('P')
let findY = word.indexOf('Y')
while(findP !== -1){
  pCount++
  findP = word.indexOf('P',findP + 1);
}
while(findY !== -1){
  yCount++
  findY = word.indexOf('Y',findY+1);
}
    return pCount=yCount ? answer:!answer
}

상당히 길었지만 최선인것 같았다.
while문으로 계속 찾고 있으면 카운트를 증가시키는 것이었다.
그리고 p와 y의 카운트가 같을때 true 리턴

다른 사람의 풀이를 보면서 어떻게 간단하게 풀수 있었을까 생각하게 되었다.
확실히 나는 두개의 카운트 값을 나눴는데 하나의 변수로 p가있을때 증가 y가 있을때 감소로
활용하면 코드를 줄일수 있겠다.

그리고 내가 생각한 최고의 풀이

function numPY(s){

    return s.toUpperCase().split("P").length === s.toUpperCase().split("Y").length;
}

스플릿으로 p를 나누고 길이를 측정 y도 마찬가지로 나누고 길이 측정하여 결과를 나타냈다
확실히 1줄로써 코드를 완성한것에 대단함을 느꼈다.
오늘도 이렇게 방법을 알아 내고 마무리

profile
프론트엔드 개발자 초보에서 고수까지!

0개의 댓글