문제풀이/프로그래머스

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

chan10 2021. 2. 1. 21:56

문제 설명

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

 

예를 들어 s pPoooyY true return하고 Pyy라면 false return합니다.

 

제한사항

·         문자열 s의 길이 : 50 이하의 자연수

·         문자열 s는 알파벳으로만 이루어져 있습니다.

 

입출력 예

s

answer

pPoooyY

true

Pyy

false

입출력 예 설명

 

입출력 예 #1
'p'
의 개수 2, 'y'의 개수 2개로 같으므로 true return 합니다.

 

입출력 예 #2
'p'
의 개수 1, 'y'의 개수 2개로 다르므로 false return 합니다.


- 풀이 과정 -

1.     문자열 s를 문자 하나씩 확인하여 p(P) 또는 y(Y)와 일치하는지 확인

2.     일치하는 경우 카운트 변수를 증가시킨다.

3.     py의 카운트 변수 숫자가 일치하지 않는 경우 false로 리턴한다.

4.     py가 하나도 없는 경우도 true이기에 3번 경우를 제외하면 나머지 리턴은 true로 한다.

 


풀이 코드

package codingTest;
 
 
//프로그래머스 Level 1 - 문자열 내 p와 y의 개수
class Solution {
    public boolean solution(String s) {
        int pcount=0, ycount=0;
        
        for(int i=0;i<s.length();i++) {
            if(s.charAt(i)=='p' || s.charAt(i)=='P') pcount++;
            if(s.charAt(i)=='y' || s.charAt(i)=='Y') ycount++;
        }
        
        if(pcount!=ycount) return false;
        
        return true;
    }
    
    public static void main(String[] args) {
        Solution sol = new Solution();
        System.out.println(sol.solution("Pyy"));
    }
}

 

다른 풀이 코드

문제에서 문자열은 소문자, 대문자 구별하지 않는다고 하기에 문자열을 모두 소문자로 만들어준다.

카운트 변수를 하나만 사용하여 문자열의 문자들을 확인한다.

카운트 변수는 p와 일치하면 증가, y와 일치하면 감소하게 하여 값이 0인지 아닌지로 판별을 한다. (0이면 p,y개수 동일)

package codingTest;
 
//프로그래머스 Level 1 - 문자열 내 p와 y의 개수
class Solution {
    public boolean solution(String s) {
        s = s.toLowerCase();
        int count=0;
        
        for(int i=0;i<s.length();i++) {
            // 방법 1
//            if(s.charAt(i)=='p') count++;
//            if(s.charAt(i)=='y') count--;        
            //방법 2
            switch(s.charAt(i)) {
                case 'p' : count++break;
                case 'y' : count--break;
            }
        }
        if(count!=0return false;
        return true;
    }
    
    public static void main(String[] args) {
        Solution sol = new Solution();
        System.out.println(sol.solution("Pyy"));
    }
}