본문 바로가기
코딩 테스트

[프로그래머스] Lv1 문자열 내 p와 y의 개수 - Java

by 그리득 2024. 3. 11.
728x90

문제 출처

https://school.programmers.co.kr/learn/courses/30/lessons/12916

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

문제 설명

대문자와 소문자가 섞여있는 문자열 s가 주어집니다.
s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 return 하는 solution를 완성하세요.
'p', 'y' 모두 하나도 없는 경우는 항상 True를 리턴합니다.
단, 개수를 비교할 때 대문자와 소문자는 구별하지 않습니다.

예를 들어 s가 "pPoooyY"면 true를 return하고 "Pyy"라면 false를 return합니다.

 

제한 조건

  • 예를 들어 s가 "pPoooyY"면 true를 return하고 "Pyy"라면 false를 return합니다.
  • 문자열 s는 알파벳으로만 이루어져 있습니다.

입출력 예

s answer
"pPoooyY" true
"Pyy" false

 

코드

문자열을 대문자로 변환하고 count를 셀 변수 하나를 선언해준다.

(대문자로 변환하지 않고 코드를 적으면 s.charAt(i)=='Y' || s.charAt(i)=='y' 로도 가능)

Y와 P의 개수가 같으면 cnt는 0이 되고, 문자열에 Y와 P가 모두 없는 경우도 0이 되기 때문에 TRUE 반환

 

사담

처음에 변수 두개를 선언해서 cnt1 == cnt2 도 생각했지만 이렇게 되면 모두 없는 경우의 수도 IF문으로 줘야되기 때문에

코드가 너무 길어진다.

replaceAll도 생각을 했지만 정규식을 제대로 알지 못해서 [^pP]를 쓰지 못했다...

기본적으로 공부해야 될 것들이 너무 많아서 더 열심히 해야될 거 같다.