99클럽 코테 스터디 1일차 TIL
💙 JAVA 비기너
사실 이 문제는 이미 기존에 풀어봤고 벨로그에도 이미 작성한 적이 있는 문제이다.
🎈 작성 내용 보러가기
약 2년만에 본 문제라서 전에 "문제를 푼다"보다는 "어떻게 풀어야 잘 풀어낸것일까"에 집중하여 코드를 작성했다.
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--;
}
return count == 0;
}
}
먼저 String.toLowerCase()
함수를 통해 s
문자열의 모든 문자를 소문자로 통일시켰다. 그래야 대소문자를 구분하지 않고 p와 y의 개수를 구할 수 있기 때문이다.
저번에는 p와 y의 개수를 세는 변수를 각각 두었다면 이번에는 변수 하나로 할 수 있지 않을까? 변수를 하나라도 덜 쓴다면 메모리를 덜 차지할 수 있을 것 같았다. 그래서 count
라는 하나의 변수로 p와 y의 개수 차를 계산할 수 있도록 하였다.
하다보니 저번의 코드와 비슷하다고 느꼈다. 정확히는 저번에 "아 이렇게 하면 더 좋은 코드가 될 수 있구나"라고 느꼈던 다른 사람의 풀이와 동일해졌다. 이미 본 코드라고는 하지만 2년동안 잊고 있다가 다시 푸는 건데 이렇게 동일해졌다는 게 신기하다. 그때의 내가 놓쳤던 부분을 2년 후의 내가 잡은 느낌? 늘 제자리 걸음이라고 생각했는데 나름 성장했구나 싶었다.