본문 바로가기
코딩테스트 연습

Programmers 문자열 내 p와 y의 개수Level 1

by 동배_ 2021. 9. 12.

문제 설명

https://programmers.co.kr/learn/courses/30/lessons/12916?language=java 

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

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

 

제한사항

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

문제 해석 및 풀이 방법

1. 스트링크기만큼 반복문을 한다.

3. 문자를 하나씩 뺴 비교하면서 p,P인지 y,Y인지 구분하여 카운트를한다.

4. 카운트한 값이 서로 다르면 false맞으면 true를 반환한다.

 

내가 작성한 소스코드(Java)

class Solution {
    boolean solution(String s) {
        int pCount = 0;
        int yCount = 0;
        
        for(int i=0;i<s.length();i++){
            if(s.charAt(i) == 'p' || s.charAt(i) == 'P') pCount++;
            else if(s.charAt(i) == 'y' || s.charAt(i) == 'Y') yCount++;
        }
        
        if(pCount == yCount) return true;
        else return false;
    }
}

pCount와 yCount를 선언한 후 스트링 크기만큼 반복문을 한다.

그리고 스트링의 문자를 하나씩 뺴가며 p,P이면 pCount를 증가하고 y,Y이면 yCount를 증가시킨다.

 

반복문이 끝나면 서로의 값을 비교해 다르면 false 같으면 true를 반환한다.

결론 및 고찰

문자열을 하나씩 비교해가며 count만 해주는 일이라 별로 어렵지 않은 문제였다.

 

소요 시간 5

댓글