백준(BOJ) 문자열 문제집: 잠수함식별(골드 5)
문제 출처: https://www.acmicpc.net/problem/2671
1. 알고리즘
지난번 Contact와 동일...정규표현식으로 풀면 되는 문제. Contact 때는 표현식 그대로 주더니, 이번엔 +가 ~로 바뀐 것 외에 표현 동일...
- 문제에서 주어진 조건을 컴파일, 패턴 생성
- 입력받은 문자열이 패턴과 일치하는 지 확인
- fullmatch 함수 사용(문자열의 처음부터 끝까지 패턴에 일치되는 지를 확인해주는 함수)
- match가 되면 match된 match객체 반환
- match가 되지 않으면 None 객체 반환
- fullmatch 함수 사용(문자열의 처음부터 끝까지 패턴에 일치되는 지를 확인해주는 함수)
- 일치하면 'SUBMARINE', 일치하지 않으면 'NOISE' 출력
2. 유의사항
3. 어려웠던 점, 해결방법
4. 소스코드
자세한 설명은 주석 참고
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
import sys
import re
input_func = sys.stdin.readline
if __name__ == '__main__':
input_string = str(*map(str, input_func().split()))
regex = re.compile('(100+1+|01)+') #규칙 컴파일, 패턴 생성
is_match = regex.fullmatch(input_string) #fullmatch함수로 패턴 일치 확인
if is_match: #패턴 일치 시
print('SUBMARINE') #'SUBMARINE' 출력
else: #패턴 불일치 시
print('NOISE') #'NOISE' 출력
|
cs |
5. 고민
'Algorithms > 백준' 카테고리의 다른 글
[백준_4358]생태학 with Java (0) | 2021.08.04 |
---|---|
[백준_12904]A와 B with Python (0) | 2021.06.30 |
[백준_4358]생태학 with Python (0) | 2021.06.24 |
[백준_1013]Contact with Python (0) | 2021.06.24 |
[백준_1747]소수&팰린드롬 with Python (0) | 2021.06.23 |
댓글