프로그래머스_문자열 내 p와 y의 개수 (for문 X) JAVA

2025. 1. 8. 22:22·알고리즘/알고리즘 풀이
반응형
 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

오랜만에 코테 문제를 푼다.
여태 코테 공부는 엄청난 작심삼일이었는데 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년차니까 좀 더 힘을 줘보자해서

이번에는 다른 풀이로 풀어보려고 노력했다.

그러면서 최근 프로젝트하면서 수석님께 정규식 어쩌고 저쩌고 얘기를 들었던게 생각나서,

이거 정규식으로 풀 수 있겠는데? 싶어 정규식을 찾아봤다.

아직 정규표현식 기호들을 머리 안에 넣어 한 번에 풀만한 머리는 못 된다.

 

정규표현식은 아래 블로그에서 찾아봤다.

 

☕ 자바 정규식(Regular Expression) 사용법 💯 정리

정규표현식 이란 정규표현식(Regular Expression)이란 문자열 데이터 중에서 원하는 조건(패턴)과 일치하는 문자열 부분을 찾아내기 위해 사용하는 것으로, 미리 정의된 기호와 문자를 이용해서 작성

inpa.tistory.com

 

보니까 내가 사용할 기호는 [], ^, | 이거 세개였다.

사용한 기호는 잊지말고 머릿속에 넣어놓자.

 

풀이

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년차의 나,,! 멋지군^^

다음에 또 이 문제를 볼 일이 생기면 더 멋지게 풀길..!

반응형
저작자표시 비영리 변경금지 (새창열림)
'알고리즘/알고리즘 풀이' 카테고리의 다른 글
  • 프로그래머스_문자열 내 마음대로 정렬하기 JAVA
  • 프로그래머스_나머지가 1이 되는 수 찾기 JAVA
  • [프로그래머스_1] 소수 찾기 JAVA
  • [프로그래머스_1] 소수 찾기 JAVA
데부한
데부한
어차피 할 거면 긍정적으로 하고 싶은 개발자
    반응형
  • 데부한
    동동이개발바닥
    데부한
  • 전체
    오늘
    어제
    • 분류 전체보기 (307)
      • 방통대 컴퓨터과학과 (27)
        • 잡담 (9)
        • 3학년1학기 (17)
      • 프로젝트 및 컨퍼런스 회고 (1)
        • 프로젝트 (4)
        • 한이음 프로젝트 (0)
        • 회고 (3)
      • 공부 (165)
        • Spring (37)
        • JPA (71)
        • 인프런 워밍업 클럽_BE (10)
        • Java (6)
        • React.js (27)
        • 넥사크로 (11)
        • 기타 (3)
      • 알고리즘 (85)
        • 알고리즘 유형 (10)
        • 알고리즘 풀이 (57)
        • SQL 풀이 (18)
      • 에러 해결 (13)
      • 잡담 (7)
        • 국비교육 (2)
        • 구매후기 (5)
        • 진짜 잡담 (0)
  • 블로그 메뉴

    • Github
    • Linkedin
    • 홈
    • 방명록
    • 글쓰기
    • 관리
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    SQL
    MSA
    JPA
    백준
    RESTful
    방통대
    운영체제
    springboot
    개발자
    SpringBoot를 이용한 RESTful Web Service 개발
    에러해결
    Spring
    자바스크립트
    IT
    전자정부프레임워크
    react
    토비의스프링부트
    oracle
    넥사크로
    Java
    인프런
    egov
    기출문제
    알고리즘
    프로그래머스
    코딩테스트
    QueryDSL
    프론트엔드
    토이프로젝트
    스프링부트
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
데부한
프로그래머스_문자열 내 p와 y의 개수 (for문 X) JAVA
상단으로

티스토리툴바