문제
대문자와 소문자가 섞여있는 문자열 s가 주어집니다. s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 return 하는 solution를 완성하세요. 'p', 'y' 모두 하나도 없는 경우는 항상 True를 리턴합니다. 단, 갯수를 비교할 때 대문자와 소문자는 구별하지 않습니다. 예를 들어 s가 "pPoooyY"면 true를 return하고 "Pyy"라면 false를 return합니다.
| s | answer |
| "pPoooyY" | true |
| "Pyy" | false |
▶ 제한사항
- 문자열 s의 길이 : 50 이하의 자연수
- 문자열 s는 알파벳으로만 이루어져 있습니다.
Solution 코드
class Solution {
boolean solution(String s) {
int count=0;
s = s.toLowerCase(); //대소문자를 구분하지 않기 때문에 가독성을 위해 소문자화
for(int i=0;i<s.length();i++){
char c = s.charAt(i);
if(c=='p')
count++;
else if(c=='y')
count--;
}
if(count == 0)
return true;
else
return false;
}
}
- 갯수를 비교할 때 대문자와 소문자는 구별하지 않기 때문에 문자열 s의 값을 소문자나 대문자로 변경하여 통일한다. 변경하지 않아도 상관없지만 if(c=='p' || c=='P') 와 같이 코드가 복잡해지기 때문에 가독성을 위해 변경해주었다.
- 문자열을 한 글자씩 문자화해서 'p' 또는 'y'인지 확인한다. 문자가 p와 같다면 count에 1을 더하고, y와 같다면 1을 빼준다.
- 문자열 s에 p와 y의 갯수가 같다면 count의 값은 0이 된다. count 값이 0이 아니라면 p와 y의 갯수가 같지 않다는 것을 의미한다.
'문제 > JAVA' 카테고리의 다른 글
| [JAVA] 정수 제곱근 판별 (0) | 2023.05.30 |
|---|---|
| [JAVA] 문자열을 정수로 바꾸기 (2) | 2023.05.29 |
| [JAVA] 자연수 뒤집어 배열로 만들기 (0) | 2023.05.29 |
| [JAVA] x만큼 간격이 있는 n개의 숫자 (0) | 2023.05.29 |
| [JAVA] 약수의 합 (0) | 2023.05.29 |