알고리즘 - 문자열 내 p와 y의 개수

Wonhee 📘·2022년 3월 15일
0

JAVA_알고리즘

목록 보기
11/21
post-thumbnail

알고리즘 문제 "문자열 내 p와 y의 개수"를 풀어보았습니다.

문제 설명

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

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

제한사항

  • 문자열 s의 길이 : 50 이하의 자연수
  • 문자열 s는 알파벳으로만 이루어져 있습니다.

문제 풀이

for문과 if문을 이용하여 조건과 분기처리를 하였고, 문자열 s에서 p와 y의 개수를 구한후 서로 비교하여 같다면 true를, 다르다면 false를 출력하는 방식으로 풀어보았다.

class Solution {
    boolean solution(String s) {
        boolean answer = true;
        int y = 0; // y의 갯수를 담을 변수
        int p = 0; // p의 갯수를 담을 변수
        // s의 길이만큼 for문 돌리기
        for(int i = 0; i < s.length(); i++){  
            if(s.charAt(i) == 'p' || s.charAt(i) == 'P'){
                p += 1;
            } else if (s.charAt(i) == 'y' || s.charAt(i) == 'Y'){
                y += 1;
            }
        }
        return answer = y == p ? true : false;
    }
}

우선 for문으로 문자열의 길이(s.length)만큼 반복시켜준다.
문자열의 index i번째의 문자를 확인하여 대문자 소문자 모두를 포함하기위해 논리연산자 || 를 사용하였고 if문으로 p인지, y인지 를 구분하여 각자의 개수를 담아줄 변수 p와 y를 만들어 담아준다.
그후 삼항연산자를 이용하여 y와 p의 개수가 같다면 true를, 다르다면 false를 출력하는 코드를 작성하였다.
삼항연산자에 대해서는 구글링을 하거나, 이전 포스팅에서 다룬적이 있기에 아래 링크를 참고해주시면 되겠습니다.
삼항연산식 확인하러가기

profile
오늘 걷지 않으면 내일은 뛰어야한다 🚶‍♂️ 🏃‍♀️

0개의 댓글