https://www.acmicpc.net/problem/2671
λ¬Έμ
μΌλ°μ μΌλ‘ μ μν¨ μμ§μ΄ μλν λμ λμ€λ μ리λ μ μν¨μ μ’ λ₯μ λ°λΌμ λ€λ₯΄λ€κ³ νλ€.
μ°λ¦¬λ λ¬Όμμμ λ€λ¦¬λ μ리μ ν¨ν΄μ λ£κ³ μ κ·Έ μλ¦¬κ° νΉμ ν μ μν¨μμ λμ€λ μ리μΈμ§ μλμ§λ₯Ό μμλ΄λ €κ³ νλ€. μ΄ λ¬Έμ μμλ μ μν¨μ μλ¦¬κ° λ μ’ λ₯μ λ¨μ μ리μ μ°μμΌλ‘ μ΄λ£¨μ΄μ Έ μκ³ , κ·Έ λ¨μ μ리λ₯Ό κ°κ° 0κ³Ό 1λ‘ νμνλ€.
λ, ν νΉμ ν μ리μ λ°λ³΅μ ~λ‘ νμνλ€. μλ₯Ό λ€μ΄ x~λ xκ° νλ² μ΄μ λ°λ³΅λλ λͺ¨λ μ리μ μ§ν©μ λ§νκ³ , (xyz)~λ κ΄νΈ μμ μλ xyzλ‘ ννλ μλ¦¬κ° νλ² μ΄μ λ°λ³΅λλ λͺ¨λ μ리μ μ§ν©μ λ§νλ€. λ€μμ μλ₯Ό 보λΌ.
- 1~ = {1, 11, 111, 1111, ..., 1...1, ...}
- (01)~ = {01, 0101, 010101, 01010101. ...}
- (1001)~ = {1001, 10011001, ..., 100110011001...1001, ...}
- 10~11 = {1011, 10011, 100011, ..., 1000...011, ...}
- (10~1)~ = {101, 1001, 10001, 100001, ...1011001, ...100110110001101, ...}
βκ·Έλ¦¬κ³ (x|y)λ xλλ yμ€μμ μ무거λ νλλ§μ μ νν΄μ λ§λ μ리μ μ§ν©, μ¦ μ§ν©{x, y}λ₯Ό μλ―Ένλ€. μλ₯Ό λ€λ©΄(1001|0101)μ μ§ν©μΌλ‘ {1001, 0101}μ μλ―Ένλ€. λ°λΌμ (0|1)~μ 0κ³Ό 1λ‘ μ΄λ£¨μ΄μ§ λͺ¨λ μ€νΈλ§μ μ§ν©, μ¦ λͺ¨λ μ리μ μ§ν©μ λ§νλ€. λ ν μλ₯Ό 보면 (100|11)~μ 100κ³Ό 11μ λ§μλλ‘ μμ΄μ λ§λ€ μ μλ λͺ¨λ μ리μ μ§ν©μ μλ―Ένλ€. μ¦ (100|11)~μ ν΄λΉνλ μ€νΈλ§μ μ§ν©μΌλ‘ λνλ΄λ©΄ {100, 11, 10011, 100100100, 1110011, ...}μ΄ λλ€. μ°λ¦¬κ° μλ³νκ³ μ νλ μ μν¨μ μμ§μ리μ ν¨ν΄μ λ€μκ³Ό κ°λ€.
(100~1~|01)~
μ¬κΈ°μ μνλ μ리μ μλ₯Ό λ€μ΄λ³΄λ©΄, 1001, 01, 100001, 010101, 1000001110101, 1001110101, 0101010101, 10010110000001111101, 01010101011000111, 10000111001111, ...μ΄λ€.
λ€μ λ§ν΄μ μ΄κ²μ 100~1~κ³Ό 01μ μμλ‘ μμ΄μ λ§λ€ μ μλ λͺ¨λ μ€νΈλ§μ μ§ν©μ λνλΈλ€.
μ λ ₯μΌλ‘ 0κ³Ό 1λ‘ κ΅¬μ±λ μ€νΈλ§μ΄ μ£Όμ΄μ§ λ, μ΄ μ€νΈλ§μ΄ μμμ κΈ°μ λ μ μν¨μ μμ§μ리μΈμ§ μλμ§λ₯Ό νλ³νλ νλ‘κ·Έλ¨μ μμ±νλΌ.
μ λ ₯
0κ³Ό 1λ‘ κ΅¬μ±λ μ€νΈλ§μ΄ 1κ° λ€μ΄μλ€. μ΄λ κ° μ€νΈλ§μ κΈΈμ΄λ 150κ° μ΄νλ‘ μ νλλ€.
μΆλ ₯
μ λ ₯μ λ€μ΄μλ μ€νΈλ§μ μ½κ³ , μ΄κ²μ΄ μ μν¨μ μμ§μ리λ₯Ό λνλ΄λ μ€νΈλ§μΈμ§ μλλ©΄ κ·Έλ₯ λ¬Όμμ μ‘μμΈμ§λ₯Ό νμ ν ν, μ μν¨μ μμ§ μ리μ ν΄λΉνλ μ€νΈλ§μ΄λ©΄ "SUBMARINE"μ μΆλ ₯νκ³ , κ·Έλ μ§ μμΌλ©΄ "NOISE"λ₯Ό μΆλ ₯νλ€.
νμ΄
μ²μμλ λ¬Έμ μ΄ν΄ μλͺ»......π
μλ.... λͺ¨λ κ²½μ°μ μ κ·ννμ μ°λκ±΄κ° βΌοΈ μ΄λλ€~ νλλ° μλμ΄μ ν€ν€
"(100~1~|01)~" μ΄ μ κ·μμ λ§λ μλ¦¬λ§ μ°ΎμΌλ©΄ λ~!
String regexp = "^(100+1+|01)+"
λ‘ λμΌνΈ βΌοΈ
μ½λ
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.regex.Pattern;
/*
μ κ·ννμ μ¬μ©
*/
public class Main_BOJ_2671_μ μν¨μλ³{
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String noise = "NOISE";
String submarine = "SUBMARINE";
// (100~1~|01)~
String regexp = "^(100+1+|01)+";
String str = br.readLine();
boolean flag = Pattern.matches(regexp, str);
if(flag)
System.out.println(submarine);
else
System.out.println(noise);
}
}
'μκ³ λ¦¬μ¦ > λ°±μ€' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[ λ°±μ€ / BOJ 17175 ] νΌλ³΄λμΉλ μ§κ²¨μ‘~ ( μλ° / JAVA ) (0) | 2021.11.11 |
---|---|
[ λ°±μ€ / BOJ 17276 ] λ°°μ΄ λ리기 ( μλ° / JAVA ) (0) | 2021.11.11 |
[ λ°±μ€ / BOJ 10828 ] μ€ν ( μλ° / JAVA ) (0) | 2021.11.02 |
[ λ°±μ€ / BOJ 16953 ] A -> B ( JAVA / μλ° ) (0) | 2021.11.02 |
[ λ°±μ€ / BOJ 1484 ] λ€μ΄μ΄νΈ ( μλ° / JAVA ) (0) | 2021.11.02 |