어흥

[백준 2671] 잠수함식별 (C++, Java) 본문

알고리즘/백준

[백준 2671] 잠수함식별 (C++, Java)

라이언납시오 2021. 3. 30. 19:37
728x90
반응형

문제 링크: www.acmicpc.net/problem/2671

 

2671번: 잠수함식별

입력에 들어있는 스트링을 읽고, 이것이 잠수함의 엔진소리를 나타내는 스트링인지 아니면 그냥 물속의 잡음인지를 판정한 후, 잠수함의 엔진 소리에 해당하는 스트링이면 "SUBMARINE"을 출력하고

www.acmicpc.net

1. 주의할 점

- 오토마타 혹은 정규표현식에 대해 알고 있으면 편하다

 

2. 구현

- 정규표현식의 패턴을 설정한다

- 입력받은 문자열이 정규표현식의 패턴을 만족한다면 잠수함을, 아니라면 잡음을 출력한다

 

[C++]

#include <iostream>
#include <string>
#include <regex>
using namespace std;

int main() {
    string str;
    cin>>str;
    string ptn = "(100+1+|01)+";
    if(regex_match(str,regex(ptn))) cout <<"SUBMARINE";
    else cout<<"NOISE";
    return 0;
}

 

[JAVA]

import java.util.*;
import java.lang.*;
import java.io.*;
import java.util.regex.Pattern;

public class Main {
    
	public static void main (String[] args) throws java.lang.Exception {
	    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
	    String str = br.readLine().trim();
	    String ptn = "(100+1+|01)+";
	    System.out.println(str.matches(ptn) ? "SUBMARINE": "NOISE");
	}
}
728x90
반응형
Comments