본문 바로가기

Plo Algorithm

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

문자열 내에 p와 y의 개수

class Solution {
    boolean solution(String s) {
        s = s.toUpperCase();
        return s.chars().filter( e -> 'P'== e).count() == s.chars().filter( e -> 'Y'== e).count();
    }
}

내가 직접 작성한 코드가 아닌
정리하면 제일 공부가 많이될법한 답안을 문제의 정답에서 가져왔다.


s = s.toUpperCase();

toUpperCase() : 영어 대소문자가 섞인 String Type Data를 모두 대문자로 변환

toLowerCase() : 영어 대소문자가 섞인 String Type Data를 모두 소문자로 변환

문제에서는 대소문자를 구별하지않고 같은지만 비교하기 때문에 모두 대문자로 바꿔주었다.

 

s.chars().filter( e -> 'P'== e).count() == s.chars().filter( e -> 'Y'== e).count();

chars() : String이나 StringBuffer Type의 Data를 intStream으로 다룰 수 있게 해준다.

.filter() : ()안의 조건값이 true인 값들로만 새로운 stream을 정의한다.

count() : 종결 함수는 stream의 갯수를 세어준다.

 

s.chars().filter( e -> 'P'== e).count() == s.chars().filter( e -> 'Y'== e).count();

앞쪽의 filter 조건에 적합한 stream을 count한 값과 뒤쪽의 조건에 적합한 stream을 count한 값이

같은지 비교하는 방식으로 문제를 해결했다.