본문 바로가기

코딩테스트/프로그래머스

프로그래머스~옹알이 2(Java)

반응형

프로그래머스 옹알이2 - 자바:https://school.programmers.co.kr/learn/courses/30/lessons/133499?language=java

 

프로그래머스

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

programmers.co.kr

문제설명
머쓱이는 태어난 지 11개월 된 조카를 돌보고 있습니다. 조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음과 네 가지 발음을 조합해서 만들 수 있는 발음밖에 하지 못하고 연속해서 같은 발음을 하는 것을 어려워합니다. 문자열 배열 babbling이 매개변수로 주어질 때, 머쓱이의 조카가 발음할 수 있는 단어의 개수를 return하도록 solution 함수를 완성해주세요.

제한사항

  • 1 ≤ babbling의 길이 ≤ 100
  • 1 ≤ babbling[i]의 길이 ≤ 30
  • 문자열은 알파벳 소문자로만 이루어져 있습니다.
  • 입출력 예*
    babbling result
    ["aya", "yee", "u", "maa"] 1
    ["ayaye", "uuu", "yeye", "yemawoo", "ayaayaa"] 2
       

풀이

```
public class day58_babu {
   public int solution(String[] babbling) {
       int answer = 0;
       String[] babu = {"aya", "ye", "woo", "ma"};
       for (String str1 : babbling) {
           if (!str1.matches(".*ayaaya.*|.*yeye.*|.*woowoo.*|.*mama.*")){
               for (String str2 : babu) {
                   str1 = str1.replaceAll(str2, "0");
               }
               if (str1.matches("^[0]*$")){
                   answer++;
               }
           }
       }
       return answer;
   }
}
```

matches의 자세한 설명은 이하의 포스트에서 참고하시길 바랍니다.
https://labfor310.tistory.com/28

 

Java~문자열 속 특정 문자 찾기 contains와 matches

들어가기에 앞서 자바에서 문자열 안에 특정 문자를 포함해 있는지를 확인 하는 방법으로 크게 contians와 matches의 두가지 방법이 있습니다. 이 방법의 특징과 사용 법에 대해서 정리해 보기로 합

labfor310.tistory.com

if (!str1.matches(".*ayaaya.*|.*yeye.*|.*woowoo.*|.*mama.*"))에서 연속해서 발음 하는 경우를 제외합니다.

 for (String str2 : babu) {
     str1 = str1.replaceAll(str2, "0");
 }

에서 옹알이에 일치하는 문자를 0으로 치환합니다.

 if (str1.matches("^[0]*$")){
     answer++;
 }

0으로만 이루어진 문자를 카운팅합니다.

반응형