[DEV] study&learn
충분히 생각하고 계획을 세우되 일단 
계획을 세웠거든 꿋꿋이 나가야 한다. 
- 레오나르도 다빈치 

문제

 

프로그래머스

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

programmers.co.kr

내 풀이

 

GitHub - hjun0917/algorithm: 알고리즘 문제 풀이

알고리즘 문제 풀이. Contribute to hjun0917/algorithm development by creating an account on GitHub.

github.com

 

문자열 내의 특정 문자의 개수를 비교하는 문제.

구글링을 통해 문제를 해결해본 후 또 따른 눈에 띄는 풀이방법이 눈에 들어와 정리해보고자 한다.

 

chars().filter를 이용 한 풀이

class Solution16_1 {
    boolean solution(String s) {
        boolean answer = true;
        s = s.toLowerCase();

        long count_p = s.chars().filter(ch -> ch == 'p').count();
        long count_y = s.chars().filter(ch -> ch == 'y').count();

        if (count_p != count_y) {
            answer = false;
            return answer;
        }

        return answer;
    }
}

 

일단... 설명이 잘 없어서 코드를 먼저 쳐보고 실행이 되는지 확인해 보았는데, 성공

 

이제 코드를 뜯어보자.

chars() -> char[ ] 로 변환하는 방법은 아니지만,

Stream 을 이용해여 String 의 문자를 개별로 출력하는 것이다.

s.chars() 는 String 의 문자들을 stream 을 만들어 준다.

 

흠... 왜 메서드에 관한 내용이 잘 안나오는지 모르게따...

 

가만보니, Steam에 대한 이해가 필요한 것 같은데...

 

내일 할 일이 정해졌다!

 

🔽 내일 공부할 것

 

자바의 정석 - 스트림(Stream) | Integerous DevLog

자바의 정석 - 스트림(Stream) 2018/11/29 자바의 정석(남궁성 저) 2권 학습내용 정리 1. 스트림(Stream) 스트림은 데이터 소스를 추상화하고, 데이터를 다루는데 자주 사용되는 메서드들을 정의해 놓았

ryan-han.com

profile

[DEV] study&learn

@devjuni

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!