백준/정규 표현식

2671 잠수함식별

have a good time 2022. 6. 28. 15:07

 

 

1. 풀이 

 

다른 사람 블로그를 참고했다.

 

문제에서 식별하고자 하는 잠수함의 엔진소리 패턴은 다음과 같다.

(100~1~|01)~

 

그러면 이에 대한 정규표현식 패턴을 만들면 다음과 같다.

^(100+1+|01)+$

 

 

여기에 사용된 정규표현식 문법을 나타내면 다음과 같다.

 

 

 

그리고 코드에 보면 입력 문자열과 패턴이 일치하는지 여부를 mathes() 메서드로 확인하고 있다.

 

matches() 메서드 : 대상 문자열과 패턴이 일치하는 경우 true 반환

 

 

2. 최종 코드

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {

	public static void main(String[] args) throws IOException {
		
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
	
		String input = br.readLine();
		String pattern = "^(100+1+|01)+$";
				
		if(input.matches(pattern)) {
			System.out.println("SUBMARINE");
		}else {
			System.out.println("NOISE");
		}
	}
}

 

 

참고 블로그 :

https://naekang.tistory.com/173

 

[Baekjoon/백준] 2671 JAVA

문제 출처: https://www.acmicpc.net/problem/2671 2671번: 잠수함식별 입력에 들어있는 스트링을 읽고, 이것이 잠수함의 엔진소리를 나타내는 스트링인지 아니면 그냥 물속의 잡음인지를 판정한 후, 잠수함

naekang.tistory.com

 

https://hbase.tistory.com/160

 

[Java] 정규표현식 사용법 및 예제 - Pattern, Matcher

자바에서 정규표현식(Regular Expression)'을 사용해보자. 1. 정규표현식(Regular Expression) 정규표현식 혹은 정규식은 특정한 규칙을 가진 문자열의 집합을 표현하는데 사용되는 언어다. 정규 표현식은

hbase.tistory.com