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

윤민선·6일 전

프로그래머스

목록 보기
93/97
post-thumbnail

문제 설명

문자열 s에 포함된 p와 y의 개수를 비교하는 문제이다.

  • p와 y의 개수가 같으면 true
  • 다르면 false
  • 대소문자는 구분하지 않는다.
  • p, y가 모두 없다면 개수가 0으로 같으므로 true이다.

접근 방법

방법 1. p, y의 개수를 각각 저장

문자열을 처음부터 확인하면서 p가 나오면 pCount를 증가시키고, y가 나오면 yCount를 증가시킨다.

마지막에 두 변수의 값이 같은지 비교한다.

pCount == yCount

방법 2. 하나의 count로 비교

p가 나오면 +1, y가 나오면 -1을 한다.

p → +1
y → -1

p, y의 개수를 각각 저장하는 풀이

최종 코드

class Solution { 
    boolean solution(String s) { 
        // 대소문자 구분을 없애기 위해 모두 소문자로 변환
        s = s.toLowerCase(); 
         
        int pCount = 0; 
        int yCount = 0; 
         
        // 문자열을 처음부터 확인
        for (int i = 0; i < s.length(); i++) { 
            char ch = s.charAt(i); 
            
            if (ch == 'p') { 
                pCount++; 
            } else if (ch == 'y') { 
                yCount++; 
            } 
        } 
         
        // p와 y의 개수가 같으면 true
        return pCount == yCount; 
    } 
}

하나의 count로 비교하는 풀이

최종 코드

class Solution { 
    boolean solution(String s) { 
        int count = 0; 
         
        // s.charAt(i)는 문자열을 글자 한글자 씩 쪼개서 가져옴
        for (int i = 0; i < s.length(); i++) { 
            char c = s.charAt(i); 
            
            if (c == 'p' || c == 'P') { 
                count++; 
            } else if (c == 'y' || c == 'Y') { 
                count--; 
            } 
        } 
         
       
        return count == 0; 
    } 
}

실행 결과

0개의 댓글