baekjoon/String

백준 4659번 : 비밀번호 발음하기 [자바]

Meluu_ 2025. 3. 6. 09:54

 

 

 

🧫 문제 분석

 

✔️ 출처

비밀번호 발음하기 실버 5

 

📖 문제

 

정규표현식 연습하고싶어서 풀게된 문제다.

정규표현식은 매번 까먹기때문에 많이 해봐야하고 잘 숙지해야한다. 

 

3번째 조건 ee, oo는 허용하면서 나머지 같은 글자 연속 2번을 제외하는게 조금 어려웠다. (결국 검색해봄..)

 


🔅 문제 풀이

import java.io.*;
import java.util.*;

public class Main {
    static String[] eval = {"is acceptable.", "is not acceptable."};
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        // 패스워드 읽기
        while (true) {
            String password = br.readLine();

            // end면 입력 종료
            if (password.equals("end")) {
                break;
            }

            // 모음 하나 반드시 포함
            if(!password.matches(".*[aeiou].*")
                    || password.matches(".*[aeiou]{3,}.*") // 모음 3개 연속
                    || password.matches(".*[^aeiou]{3,}.*") // 자음 3개 연속
                    || password.matches(".*([a-df-np-z])\\1.*")) { // ee, oo 제외한 연속된 같은 글자 제외

                bw.write(String.format("<%s> is not acceptable.\n", password));
                continue;
            }

            bw.write(String.format("<%s> is acceptable.\n", password));
        }

        bw.flush();
        bw.close();
    }

}

 

 

 

❗ 오답노트 / 필요한 지식

  1.  정규표현식 정리할 예정

'baekjoon > String' 카테고리의 다른 글

백준 2179번 : 비슷한 단어 [자바]  (0) 2025.03.14
백준 20437번 : 문자열 게임 2 [자바]  (0) 2025.03.09
백준 1036번 : 36진수 자바  (2) 2024.08.28
백준 5525번 : IOIOI 자바  (0) 2024.08.24
백준 5430번 : AC 자바  (0) 2024.08.21