개발 공부

프로그래머스 문자열내 p와 y의 개수 Java 본문

코딩 테스트

프로그래머스 문자열내 p와 y의 개수 Java

hyecozy 2022. 11. 8. 19:27

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

class Solution {
    boolean solution(String s) {
        int cntP = 0;
        int cntY = 0;
        
        for(int i = 0; i < s.length(); i++){
            if(s.charAt(i) == 'p' || s.charAt(i) == 'P'){
                cntP++;
            }
            if(s.charAt(i) == 'y' || s.charAt(i) == 'Y'){
                cntY++;
            }
        }

        if(cntP == cntY){
            return true;
        }
        else{
            return false;
        }
    }
}

int 변수 하나만 있어도 될 거 같다는 생각을 하면서 제출했는데

다른 분이 cnt 변수 하나로 X는 ++ 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();
    }
}

➡️ chars()

char형 배열이 아닌 Stream을 이용하여 String의 문자를 개별로 출력하는 것

➡️filter(), count()는 스트림과 관련된 것들인데 이에 대한 정리는

https://paradiseiswhereiam.tistory.com/148

 

Stream

스트림이란? - 데이터 처리 연산을 지원하도록 소스에서 추출된 연속된 값 요소 - 컬렉션의 요소를 하나씩 참조해 람다식으로 처리할 수 있는 반복자 더 쉽게 정의하자면 스트림은 데이터컬렉션

paradiseiswhereiam.tistory.com

 

Comments