알고리즘, 자료구조/프로그래머스

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

soohkang 2021. 4. 7. 11:56
728x90

문제

정답 처리된 코드(1)

function solution(s){
    var answer = true, p_cnt=0, y_cnt=0;
    var tmp = s.toUpperCase();
    for(let x of tmp){
        if(x === 'P') p_cnt++;
        else if(x === 'Y') y_cnt++;
    }
    if(p_cnt === y_cnt) answer=true;
    else answer=false;
    return answer;
}

문제 이해

1) 문자열을 모두 대문자로 만들어서 하나하나 확인한다.

2) P일 때와 Y일 때 각각 1씩 카운트해서 개수가 같은지 다른지 확인한다.

 

  • tmp 변수를 만들지 않고 s.toUpperCase(); 만 처리하고 for 문을 돌렸더니 테스트 케이스에 모두 통과되지 않았음. 콘솔로 확인해보니 실수를 확인할 수 있었다.

정답 처리된 코드(2)

좋아요가 가장 많은 다른 사람 코드

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

문제 이해

1) 한 줄로 리턴 가능.

 

출처: programmers.co.kr/learn/courses/30/lessons/12916?language=javascript

 

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

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

programmers.co.kr