랄라

LV1 문자열 내 p와 y의 개수 - JAVA 본문

스터디/코딩 테스트(프로그래머스)

LV1 문자열 내 p와 y의 개수 - JAVA

devdaeun 2024. 11. 27. 10:39

코딩테스트 연습 - 문자열 내 p와 y의 개수 | 프로그래머스 스쿨

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

문제 설명
- 대문자와 소문자가 섞여있는 문자열 s가 주어집니다. s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 return 하는 solution를 완성하세요.

- 'p', 'y' 모두 하나도 없는 경우는 항상 True를 리턴합니다. 단, 개수를 비교할 때 대문자와 소문자는 구별하지 않습니다.

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

 

class Solution {
    boolean solution(String s) {
        boolean answer = true;
        String lower = s.toLowerCase();//전체 소문자로 변환
        int pval = 0;
        int yval = 0;
        
        for (int i=0; i<s.length(); i++){
            String sub = lower.substring(i,i+1);
            if (sub.equals("p")){ // 문자열이어서 equals() 로 동등비교
                pval += 1;
            }else if(sub.equals("y")){
                yval += 1;
            }
        }

        if(pval == yval){
            answer = true;
        }else{
            answer = false;
        }
        
        return answer;
    }
}

 

 

대소문자를 구분하지 않고, "p"와 "y"값을 비교한다고 해 전체 문자열을 소문자로 변환하였다.

이후, 문자열의 각 문자를 for문을 사용하여 substring으로 가져왔다.

문제에서 요구하는 "p"의 값과 "y"의 값을 카운팅할 수 있도록 if문을 추가하여 값을 더하고, 반복문 종료 후 최종 개수를 비교하여 answer값을 구하였다.