알고리즘/프로그래머스
[자바/알고리즘] 프로그래머스 문자열 내 p와 y의 개수
효기로그
2019. 12. 10. 17:20
반응형
문제 설명
대문자와 소문자가 섞여있는 문자열 s
가 주어집니다. s
에 문자 'p'와 'y'의 개수를 비교해 같으면 True, 다르면 False를 return 하는 solution를 완성하세요, 'p', 'y' 모두 하나도 없는 경우는 항상 True를 리턴합니다. 단, 개수를 비교할 때 대문자와 소문자는 구별하지 않습니다.
예를 들어 s
가 "pPoooyY"면 true를 return하고 "Pyy"라면 false를 return합니다.
제한사항
- 문자열 s의 길이 : 50 이하의 자연수
- 문자열 s는 알파벳으로만 이루어져 있습니다.
입출력 예
S | answer |
"pPoooyY" | true |
"Pyy" | false |
입출력 예 설명
- 입출력 예 #1
- 'p'의 개수 2개, 'y'의 개수 2개로 같으므로 true를 return 합니다.
- 입출력 예 #2
- 'p'의 개수 1개, 'y'의 개수 2개로 다르므로 false를 return 합니다.
나의 풀이
class Solution {
boolean solution(String s) {
boolean answer = true;
int cnt1 = 0;
int cnt2 = 0;
for(int i = 0; i < s.length(); i++){
if(Character.toUpperCase(s.charAt(i)) == 'P'){
cnt1++;
} else if(Character.toUpperCase(s.charAt(i)) =='Y'){
cnt2++;
}
}
if(cnt1 != cnt2) {
answer = false;
}
return answer;
}
}
풀이 설명
아무 값도 없을경우 true를 반환한다는 조건 때문에 answoer을 true로 초기화 해줍니다. 그 후 대소문자 구분을 안하고 값을 비교 하기 위해 Character
래퍼 클래스의 toUpperCase(char)
메소드를 통해 값을 비교 후 카운터 변수를 증가시켜줍니다.
마지막으로 값이 같은지 다른지를 비교해 리턴해줍니다.
반응형