알고리즘과 언어/c++

정규표현식 <regex>

nextcoder 2021. 9. 20. 14:12

 

https://www.acmicpc.net/problem/1013

 

1013번: Contact

입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트 케이스에 대해 전파를 표현하는, { 0, 1 }만으로 이루어진 문자열이 공백 없이 주어진다. 문자열 길이는 (1 ≤

www.acmicpc.net

 

백준 1013번 Contact 문제는 문자열 카테고리에 있었지만 정규 표현식은 아는지 모르는지에 따라 차이가 큰 것 같다.

"(100+1+|01)+" 와 같은 표현이 정규 표현식을 의미한다.

 

<참고>

https://hamait.tistory.com/342

 

 

 

C++에서는 다행히 정규표현식에 대한 라이브러리를 제공해주었다.

<regex> 가 그것인데,

 

regex tmp("정규식");

 

벡터처럼 type으로 사용되는 것 같다.

 

regex("문자열", tmp) 를 통해서 문자열이 정규식이 맞는지 확인하고, 맞다면 ture, 아니라면 false를 반환한다.

 

 

* 주의할 점

 

- 정규표현식 내에 불필요한 띄어쓰기는 정규표현식 내용을 바꾼다

- apple 터미널(clang) 에서 gcc로 regex를 컴파일하지 못해서 (라이브러리가 없는지..) CLion 환경으로 확인했다. 코딩 테스트 환경 같은 곳에서는 된다고 한다.