toLowerCase()
if
for
, charAt()
class Solution {
boolean solution(String s) {
int p = 0;
int y = 0;
s = s.toLowerCase();
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) == 'p')
p++;
if (s.charAt(i) == 'y')
y++;
}
return 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();
}
}
이번에는 filter에 대해 공부했었는데 써먹질 못했다.
String의 문자들을 stream으로 만들어준다.
charAt(i)는 (i-1)번째(index는 i번째) 문자만 char형으로 만들어주는 반면에, chars()는 stream에 char형으로 다 담겨 있다.
charAt(i)
를 사용했다면 for문
을 돌려야했을텐데, chars()
를 이용하며 stream의 문자들을 filter로 뽑아내서 count()
를 이용해 조건에 맞는 개수를 찾아내는 방식을 이용했다.