반응형
오랜만에 코테 문제를 푼다.
여태 코테 공부는 엄청난 작심삼일이었는데 2025년이 되었으니 제대로 해보고자
다시 풀었던 문제도 다시 풀어 포스팅해보려고 한다.
챗GPT 유료로 사용하는 김에 코딩테스트 커리큘럼과 커리큘럼에 맞는 프로그래머스의 문제를 추천해달라했다.
일단 1주차 문제다.
저 중에 오늘은 '문자열 내 p와 y의 개수' 문제를 풀어보자.
예전에 풀었던 문제라 예전에 제출한 내 코드가 남아있었다.
// 예전 코드
import java.util.*;
class Solution {
boolean solution(String s) {
boolean answer = true;
int cnt = 0;
if(s.length() == 0) return true;
s = s.toUpperCase();
cnt += s.length() - s.replace("P", "").length();
cnt -= s.length() - s.replace("Y", "").length();
return cnt == 0 ? true : false;
}
}
뭔가 엄청나게 잡스럽다.
그래 나도 이제 개발한지 4년차니까 좀 더 힘을 줘보자해서
이번에는 다른 풀이로 풀어보려고 노력했다.
그러면서 최근 프로젝트하면서 수석님께 정규식 어쩌고 저쩌고 얘기를 들었던게 생각나서,
이거 정규식으로 풀 수 있겠는데? 싶어 정규식을 찾아봤다.
아직 정규표현식 기호들을 머리 안에 넣어 한 번에 풀만한 머리는 못 된다.
정규표현식은 아래 블로그에서 찾아봤다.
보니까 내가 사용할 기호는 [], ^, | 이거 세개였다.
사용한 기호는 잊지말고 머릿속에 넣어놓자.
풀이
class Solution {
boolean solution(String s) {
String stringY = s.replaceAll("[^y|^Y]","");
String stringP = s.replaceAll("[^p|^P]", "");
return stringY.length() == stringP.length();
}
}
예전에 풀었던 것도 for문을 안쓰려고 되게 애를 쓴 거 같았는데,
정규표현식이 마냥 어렵다고만 생각해서 쓰지 않아서 저렇게 뱅글뱅글 돌게 된 것 아닌가 싶다.
역시 4년차의 나,,! 멋지군^^
다음에 또 이 문제를 볼 일이 생기면 더 멋지게 풀길..!
반응형