-
정규표현식 <regex>알고리즘과 언어/c++ 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 환경으로 확인했다. 코딩 테스트 환경 같은 곳에서는 된다고 한다.
'알고리즘과 언어 > c++' 카테고리의 다른 글
C++) 백준 1780 종이의 개수 (0) 2022.02.08 C++) 원하는 자리수 까지 출력하기 (반올림, 올림, 내림) (0) 2022.02.07 ios_base::sync_with_stdio(false); cin.tie(NULL); (0) 2021.11.14 최대값, 최소값 max_element min_element (프로그래머스 프린터) (0) 2021.08.19 [hash, vector] 프로그래머스 베스트 앨범 (0) 2021.08.18