π [λ°±μ€μκ³ λ¦¬μ¦ νμ΄] Q.9342 μΌμ체 λ¬Έμ νμ΄ - java
π λ¬Έμ
https://www.acmicpc.net/problem/9342
μκ·Όμ΄λ μλͺ κ³Όν μ°κ΅¬μμμ μΌμμ²΄κ° νΉμ ν ν¨ν΄μΈμ§λ₯Ό νμΈνλ μΌμ νκ³ μλ€. μΌμ체λ μνλ²³ λλ¬Έμ (A, B, C, β¦, Z)λ‘λ§ μ΄λ£¨μ΄μ§ λ¬Έμμ΄μ΄λ€. μκ·Όμ΄λ κ° μΌμμ²΄κ° λ€μκ³Ό κ°μ κ·μΉμ λ§μ‘±νλμ§ κ²μ¬ν΄μΌ νλ€.
λ¬Έμμ΄μ {A, B, C, D, E, F} μ€ 0κ° λλ 1κ°λ‘ μμν΄μΌ νλ€.
- κ·Έ λ€μμλ Aκ° νλ λλ κ·Έ μ΄μ μμ΄μΌ νλ€.
- κ·Έ λ€μμλ Fκ° νλ λλ κ·Έ μ΄μ μμ΄μΌ νλ€.
- κ·Έ λ€μμλ Cκ° νλ λλ κ·Έ μ΄μ μμ΄μΌ νλ€.
- κ·Έ λ€μμλ {A, B, C, D, E, F} μ€ 0κ° λλ 1κ°κ° μμΌλ©°, λ μ΄μμ λ¬Έμλ μμ΄μΌ νλ€.
λ¬Έμμ΄μ΄ μ£Όμ΄μ‘μ λ, μμ κ·μΉμ λ§μ‘±νλμ§ κ΅¬νλ νλ‘κ·Έλ¨μ μμ±νμμ€.
π μ κ·Όλ²
Q.9342 μΌμ체 λ¬Έμ μ λλ€.
λ¬Έμ μμ μ£Όμ΄μ§ 쑰건λλ‘ νΉμ ν ν¨ν΄μ΄ λ§λμ§ μλμ§λ₯Ό νμΈνλ λ¬Έμ μ λλ€. μ κ·ννμμ μ΄μ©ν΄ μλμ κ°μ΄ νμ΄κ° κ°λ₯ν©λλ€.
1.λ¬Έμμ΄μ {A, B, C, D, E, F} μ€ 0κ° λλ 1κ°λ‘ μμν΄μΌ νλ€.
=> ^[A-F]?
2.κ·Έ λ€μμλ Aκ° νλ λλ κ·Έ μ΄μ μμ΄μΌ νλ€.
=> A+
3.κ·Έ λ€μμλ Fκ° νλ λλ κ·Έ μ΄μ μμ΄μΌ νλ€.
=> F+
4.κ·Έ λ€μμλ Cκ° νλ λλ κ·Έ μ΄μ μμ΄μΌ νλ€.
=> C+
5.κ·Έ λ€μμλ {A, B, C, D, E, F} μ€ 0κ° λλ 1κ°κ° μμΌλ©°, λ μ΄μμ λ¬Έμλ μμ΄μΌ νλ€.
=> [A-F]?$
=> String regex = β^[A-F]?A+F+C+[A-F]?$β;
π» μ½λ
package problem.string.regex;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.regex.Pattern;
public class Main_9342 {
static String[] strs;
static int n;
public static void main(String[] args) throws IOException {
input();
String answer = solve();
System.out.println(answer);
}
public static void input() throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
n = Integer.parseInt(br.readLine());
strs = new String[n];
for(int i=0; i<n; i++){
strs[i] = br.readLine();
}
br.close();
}
public static String solve() {
StringBuilder sb = new StringBuilder();
String regex = "^[A-F]?A+F+C+[A-F]?$";
for(int i=0; i<n; i++) {
if( Pattern.matches(regex, strs[i]) == true){
sb.append("Infected!\n");
}
else {
sb.append("Good\n");
}
}
return sb.toString();
}
}