🛠️ 문제
💻 풀이
- 처음 풀이: 대소문자를 구분하지 않는다는 조건이 있어서 일단 소문자로 통일하고 반복문을 돌리기로 결정.
charAt
로 하나씩 뽑아 쓰려다가 생각해보니 그냥 어레이로 만들고 돌려버리면 돼서, 역시나 깊은 생각 없이 반환하는 방식을 구현했다. 그리고 약간 고민했던 건 마지막 리턴 방식. 모두 1개라도 없을 경우엔 true를 리턴이라 어떻게 할지 쫌 고민했다...(바보)
class Solution {
boolean solution(String s) {
int p = 0, y = 0;
for (char c : s.toLowerCase().toCharArray()) {
if (c == 'p') p++;
if (c == 'y') y++;
}
return p == y;
}
}
- 두번째 풀이: 이번에도 조금 더 머리를 쓰면서 스트림을 활용하기로 결정! 막상 쓰니까 생각보다 쉽게 풀렸던 스트림 활용! 물론, 이것보다 더 간단하게 모두 리턴문에 때려놓고 한줄로 하는 방법도 있지만 그러면 가독성도 안 좋아지고 매력적으로 다가오지 않아서 개별로 받아 리턴시켰다.
class Solution {
boolean solution(String s) {
long pCount = s.chars().filter(c -> c == 'p' || c == 'P').count();
long yCount = s.chars().filter(c -> c == 'y' || c == 'Y').count();
return pCount == yCount;
}
}
🤔 고찰
- 코테에서 제일 중요한 건 역시 문제를 잘 읽고 조금 더 생각하는 것 같다.
- 익숙함에 속아서 toCharArray를 잊지 말자...