Programmers Lv.1 - 문자열 내 p와 y의 개수[Java]

seren-dev·2022년 5월 6일

Programmers Lv.1

목록 보기
10/15

https://programmers.co.kr/learn/courses/30/lessons/12916

접근

  • String을 char 배열로 변환
  • 각각의 char에 대해 p이거나 y일 때 count 함

나의 풀이

0.02ms

class Solution {
    boolean solution(String s) {
        s = s.toLowerCase();

        int p = 0, y = 0;

        char[] arr = s.toCharArray();

        for (char ch : arr) {
            if (ch == 'p') p++;
            else if (ch == 'y') y++;
        }

        if (p == y)
            return true;
        else
            return false;

    }
}

마지막 if 문은 삼항연산자로 가능
return p == y ? true : false;
return p == y; 도 가능

다른 사람의 풀이1

0.02ms

class Solution {
    boolean solution(String s) {
        s = s.toLowerCase();
        
        int cnt = 0;

        for (int i = 0; i < s.length(); i++) {
            if (s.charAt(i) == 'p') cnt++;
            else if (s.charAt(i) == 'y') cnt--;
        }

        return cnt == 0;

    }
}
  • s.charAt(i) 를 사용하여 String의 문자를 탐색
  • count 변수 하나만을 사용하여 개수가 같은지 판별
  • return cnt == 0;

다른 사람의 풀이2

class Solution {
    boolean solution(String s) {
        s = s.toLowerCase();

        return s.chars().filter(e -> e == 'p').count() == s.chars().filter(e -> e == 'y').count();

    }
}
  • s.chars() : String -> IntStream
  • 스트림에 filter() 함수 사용
  • count() : 스트림의 요소 개수

0개의 댓글