💬 문제 설명
대문자와 소문자가 섞여있는 문자열 s가 주어집니다. s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 return 하는 solution를 완성하세요. 'p', 'y' 모두 하나도 없는 경우는 항상 True를 리턴합니다. 단, 개수를 비교할 때 대문자와 소문자는 구별하지 않습니다.
예를 들어 s가 "pPoooyY"면 true를 return하고 "Pyy"라면 false를 return합니다.
🚫 제한 사항
- 문자열 s의 길이 : 50 이하의 자연수
- 문자열 s는 알파벳으로만 이루어져 있습니다.
📢 입출력 예
👨🏫 입출력 예 설명
📃 제출 코드
class Solution {
boolean solution(String s) {
boolean answer = false;
int count = 0;
for (int i = 0; i < s.length(); i++) {
char ch = Character.toLowerCase(s.charAt(i));
if (ch == 'p') count++;
if (ch == 'y') count--;
}
if (count == 0) answer = true;
return answer;
}
}
✏ 해결방법 & 배운점
접근 방법
- 문자열을 순회하면서 각 문자를 소문자로 변환합니다.
- 각 문자가 'p' 인 경우와 'y'인 경우를 확인합니다.
- 문자가 'p' 인경우 카운트를 증가시키고 'y'인 경우 카운트를 감소합니다.
- 문자열 전체를 순회한 후 카운트가 0이면 `true` 그렇지 않으면 `false`를 반환합니다.
코드 설명
- `Character.toLowerCase()` 메서드를 사용하여 현재 문자를 소문자로 변환합니다.
- 이렇게 하면 대소문자 구분 없이 비교할 수 있습니다.
- 'p'와 'y'의 개수를 비교하기 위해 count 변수를 사용합니다.
- 'p'가 나올 때마다 count를 증가시키고, 'y'가 나올 때마다 count를 감소시킵니다.
- 문자열 전체를 순회한 후 count가 0이면 'p'와 'y'의 개수가 같은 것이므로 true를 반환합니다.
- 그렇지 않으면 false를 반환합니다.
'PS > LV.1 프로그래머스 문제' 카테고리의 다른 글
[프로그래머스] LV.1 정수 내림차순으로 정렬하기 - 자바 [6/80] (0) | 2024.07.15 |
---|---|
[프로그래머스] LV.1 자연수 뒤집어 배열로 만들기 - 자바 [5/80] (0) | 2024.07.15 |
[프로그래머스] LV.1 자릿수 더하기 - 자바 [4/80] (0) | 2024.07.15 |
[프로그래머스] LV.1 문자열을 정수로 바꾸기 - 자바 [3/80] (0) | 2024.07.15 |
[프로그래머스] LV.1 두 정수 사이의 합 - 자바 [1/80] (0) | 2024.07.15 |