본문 바로가기
알고리즘/문자열

[백준][Python] 4659번 비밀번호 발음하기

by 임짠짠 2022. 6. 27.
반응형
 

4659번: 비밀번호 발음하기

좋은 패스워드를 만드는것은 어려운 일이다. 대부분의 사용자들은 buddy처럼 발음하기 좋고 기억하기 쉬운 패스워드를 원하나, 이런 패스워드들은 보안의 문제가 발생한다. 어떤 사이트들은 xvtp

www.acmicpc.net

 

 

코드

import sys
vowel = {'a','e','i','o','u'}
while (1):
	test = sys.stdin.readline().rstrip()
	if test == 'end':
		break
	pw = list(test)
	v_flag = 0 # 모음 존재하는지 확인
	v_cnt = 0  # 모음 3개 연속인지 확인
	c_cnt = 0  # 자음 3개 연속인지 확인
	err = 0  # 같은 문자 연속 2개 or 자음/모음 연속 3개인 경우 1
	for i in range(len(pw)):
		if i > 0:
			if pw[i] == pw[i-1]:
				if pw[i] != 'e' and pw[i] != 'o':
					err = 1
					break
		if pw[i] in vowel:
			v_flag = 1
			v_cnt += 1
			c_cnt = 0
			if v_cnt == 3:
				err = 1
				break
		else:
			v_cnt = 0
			c_cnt += 1
			if c_cnt == 3:
				err = 1
				break
	
	if (err != 1) and (v_flag == 1):
		print("<"+ test +"> is acceptable.")
	else:
		print("<" + test + "> is not acceptable.")

 

설명

모음이 들어있는 vowel이라는 딕셔너리를 만들어서 주어진 단어에 모음이 있는지 확인했다. 

같은 글자가 연속으로 두 번 오는지는 pw[i] == pw[i-1] 로 이전 글자와 비교를 해줬다.

반응형

댓글