TIL | [알고리즘] 문자열 내 p와 y의 개수(Java)

hyemin·2022년 3월 12일
0

알고리즘

목록 보기
16/38
post-thumbnail

THINKING

  1. 소문자와 대문자를 구별하지 않음으로 다 소문자로 바꿔야겠다 - toLowerCase()
  2. 'p'와 'y'의 경우를 나누자 - if
  3. string s의 문자를 하나씩 빼와 각각 'p' 또는 'y와 일치하는지 확인하자 - 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에 대해 공부했었는데 써먹질 못했다.

배운 것

chars()

String의 문자들을 stream으로 만들어준다.

charAt(i)는 (i-1)번째(index는 i번째) 문자만 char형으로 만들어주는 반면에, chars()는 stream에 char형으로 다 담겨 있다.

charAt(i)를 사용했다면 for문을 돌려야했을텐데, chars()를 이용하며 stream의 문자들을 filter로 뽑아내서 count()를 이용해 조건에 맞는 개수를 찾아내는 방식을 이용했다.

0개의 댓글

관련 채용 정보