- 문자열을 char의 배열로 생각했을 때, 각 element를 비교할 수 있겠다.
- p와 y의 개수를 세는 방법
- for문을 이용해 count 변수의 값 증가하는 방식
- 애초에 개수가 나오는 방법이 있나?
- 대소문자 구분 없이 비교해야 하므로 활용할 수 있는 메서드가 어떤 것이 있을까?
class Solution {
boolean solution(String s) {
boolean answer = false;
s = s.toLowerCase();
int countP = 0;
int countY = 0;
for (int i : s.toCharArray()){
if(i == 'p') {
countP++;
} else if(i == 'y'){
countY++;
}
}
if(countP == countY){
answer = true;
}
return answer;
}
}
- toLowerClass()로 모두 소문자로 바꿔놓고 시작하기
- p, y의 개수를 세는 count 변수 설정
- toCharArray()로 String을 array로 변경
프로그래머스에서 다른 분들의 풀이를 보고 개선하기
class Solution {
boolean solution(String s) {
s = s.toLowerCase();
int count = 0;
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) == 'p')
count++;
else if (s.charAt(i) == 'y')
count--;
}
if (count == 0)
return true;
else
return false;
}
}
프로그래머스에서 다른 분의 풀이를 참고했다.
class Solution {
boolean solution(String s) {
s = s.toUpperCase();
return s.chars().filter( e -> 'P'== e).count() == s.chars().filter( e -> 'Y'== e).count();
}
}
람다식에 대해서 잘 몰라서 정처기 시험 끝내면 한 번 날 잡고 공부를 해야 할 것 같다. 문제를 많이 안 풀어봐서 함수 활용을 잘 못하는게 느껴진다.
오늘의 키워드
- toLowerCase(), toUpperCase()
- toCharArray()
- 람다식
- count 변수 줄이기