Level. 1
문제
풀이
class Solution {
boolean solution(String s) {
s = s.toLowerCase();
boolean answer = true;
int count = 0;
for(int i=0; i<s.length(); i++){
if(s.charAt(i) == 'y') count++;
if(s.charAt(i) == 'p') count--;
}
return count == 0 ? true : false;
}
}
대소문자를 구문 하지 않는다는 조건이 있기 때문에 toLowerCase()를 사용하여 모두 소문자로 만들어준 후 탐색했다.
다른 사람 풀이
class Solution {
boolean solution(String s) {
s = s.toUpperCase();
return s.chars().filter( e -> 'P'== e).count() == s.chars().filter( e -> 'Y'== e).count();
}
}
Java의 기본 문자 어레이를 chars()를 통해 스트림으로 변환하고, filter()를 통해 원하는 자료만 필터링하여 한줄코드로 해결했다.
chars()
- chars()는 CharSequence 인터페이스로부터 파생한 String 클래스의 새로운 메서드이다.
- chars()는 기본적으로 IntStream을 반환하여, 문자어레이를 스트림으로 만들 때 사용할 수 있다.
Filter
- Stream 클래스에서 제공하는 filter() 메서드
- 스트림 요소를 순회하면서 특정 조건을 만족하는 요소로 구성된 새로운 스트림을 반환한다.
- 스트림 내 요소에 대해서 필터링할 때 사용한다.
'Algorithm > Programers - Java' 카테고리의 다른 글
[프로그래머스] 자연수 뒤집어 배열로 만들기 / valueOf,() toString() (0) | 2023.06.25 |
---|---|
[프로그래머스] 제일 작은 수 제거하기 / Stream (0) | 2023.05.14 |
[프로그래머스] 삼총사 / DFS (0) | 2023.05.06 |
[프로그래머스] 시저암호 / isLowerCase (0) | 2023.04.29 |
[프로그래머스] 문자열을 정수로 바꾸기 / valueOf , int와 Integer (0) | 2023.04.29 |