제이슨의 개발이야기

[코딩테스트] 문자열 내 p와 y의 개수 in java 본문

코딩테스트

[코딩테스트] 문자열 내 p와 y의 개수 in java

제이쓰은 2021. 5. 9. 12:37
728x90
반응형

안녕하세요 오늘은 프로그래머스 에서 문자열 내 p와 y의 개수 를 찾는 문제를 풀어봤습니다! 

 

그동안 제가 프로그래머스 문제를 많이 풀어보진 않았지만 개인적으로 수박수박수 문제 다음으로 가장 쉬운 문제인거같았습니다! 

 

문제 설명

대문자와 소문자가 섞여있는 문자열 s가 주어집니다. s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 return 하는 solution를 완성하세요. 'p', 'y' 모두 하나도 없는 경우는 항상 True를 리턴합니다. 단, 개수를 비교할 때 대문자와 소문자는 구별하지 않습니다.

예를 들어 s가 "pPoooyY"면 true를 return하고 "Pyy"라면 false를 return합니다.

 

제한사항

  • 문자열 s의 길이 : 50 이하의 자연수
  • 문자열 s는 알파벳으로만 이루어져 있습니다.

입출력 예

 

answer return
"pPoooyY" true
"Pyy" false

 

public class Soluction {
    boolean solution(String s) {
        boolean answer = true;
        int p = 0;
        int y = 0;
        for(int i = 0; i<s.length() ; i++){
            if(s.charAt(i)=='p' || s.charAt(i)=='P'){
                p++;
            }else if(s.charAt(i)=='y' || s.charAt(i)=='Y') {
                y++;
            }
        }
        if(p!=y){
            answer=false;
        }
        // [실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
        System.out.println("Hello Java");

        return answer;
    }
}

 

요번 문제는 너무 쉬워서 아마 다들 문제없이 해결하셨을거라고 봅니다 ㅎㅎ 

 

저도 풀고 다른 분들은 어떤 식으로 풀었나 라고 봤는대 대부분 비슷한 방식이더라구요

 

그 와중에 정말 와 이건 좀 다르다 난 아직 멀었다 란 생각이 들었던 코드가 있었습니다

 

다른사람이 구현한 코드!

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

        return s.chars().filter( e -> 'P'== e).count() == s.chars().filter( e -> 'Y'== e).count();
    }
}

 위의 코드처럼 람다를 이용해서 구현하면 간단하게 그리고 코드도 짧게 구현이 가능합니다!

 

우리 모두 저렇게 짧은 코드를 구현 할 수 있도록 공부 열심히 해봅시다!

728x90
반응형