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한 값이
같은지 비교하는 방식으로 문제를 해결했다.
'Plo Algorithm' 카테고리의 다른 글
프로그래머스 Lv1 서울에서 김서방 찾기 (0) | 2022.03.16 |
---|---|
프로그래머스Lv1 문자열 다루기 기본 (0) | 2022.03.16 |
프로그래머스Lv1 내적 (0) | 2022.03.16 |
프로그래머스Lv1 나누어 떨어지는 숫자 배열 (0) | 2022.03.16 |
프로그래머스Lv1 2016년 (0) | 2022.03.16 |