728x90
문제 링크: https://www.acmicpc.net/problem/4659
4659번: 비밀번호 발음하기
좋은 패스워드를 만드는것은 어려운 일이다. 대부분의 사용자들은 buddy처럼 발음하기 좋고 기억하기 쉬운 패스워드를 원하나, 이런 패스워드들은 보안의 문제가 발생한다. 어떤 사이트들은 xvtp
www.acmicpc.net
❌ 디버깅 속의 실패들
* and 와 & 의 차이
* or 과 | 의 차이
이 두개 차이때문에 계속 디버깅이 안되고 있었다......
이건 공부를 해서 확실히 차이를 알아둬야지!
❓ 정답은 ??
1
2
3
4
5
6
7
8
9
10
11
12
13
|
import re
while True:
test=input()
if test=='end': break
p= re.findall('a|e|i|o|u',test) #p만족하는게 있어야함
q= re.findall('([a|e|i|o|u]{3})|([^a|e|i|o|u]{3})',test) #q만족하는게 없어야함
r= re.findall(r'([a-df-np-z])\1',test) #r 만족하는 게 없어야함
if len(p)!=0 and len(q)==0 and len(r)==0 :
print(f"<{test}> is acceptable.")
else: print(f"<{test}> is not acceptable.")
|
cs |
💯 풀이 과정
문제 속 조건을 정규표현식으로 써보기
- 모음(a,e,i,o,u) 하나를 반드시 포함하여야 한다. 'a|e|i|o|u'
- 모음이 3개 혹은 자음이 3개 연속으로 오면 안 된다. '([a|e|i|o|u]{3})|([^a|e|i|o|u]{3})'- 3번 연속 나오는 경우니까 {3}쓰고, 또한 자음의 경우는 [ ] 속 맨앞에 ^을 써 넣어 모음에 반대되는 경우를 써준다
- 같은 글자가 연속적으로 두번 오면 안되나, ee 와 oo는 허용한다. r'([a-df-np-z])\1'- 백슬래시를 한번만 쓰도록 r을 앞에 써주고, - e랑o를 제외한 것들로 하고 싶으니 [a-df-n-p-z],- 그것이 한번 더 반복되는 거니까 ( ) 첫번째 그룹 묶어놓은 것을 한번더 써준다 \1
😎오늘의 한줄평: 조금 오래 걸렸지만, 막상 해결하고 나니, 너무 시원하다!
728x90
'😁 빅데이터 문제 풀기 & Study > - BAEKJOON 문제' 카테고리의 다른 글
[14405] 피카츄 / 파이썬 (정규표현식 5줄이면 끝) (0) | 2021.12.08 |
---|---|
[10173] 니모를 찾아서 / 파이썬 (정규표현식) (0) | 2021.12.08 |
[2954] 창영이의 일기장 / 파이썬 ( 4줄이면 끝 ) (0) | 2021.12.06 |
[2929] 머신 코드 / 파이썬 (정규표현식) (0) | 2021.12.06 |
[3447] 버그왕 / 파이썬 ( 파이썬 방법으로 풀 수 있습니다!ㅠㅠ 유레카) (0) | 2021.12.05 |