스마트 도어락
골드는 스마트 도어락의 보안 시스템을 강화하기 위해 새로운 비밀번호 생성 규칙을 도입하고자 한다.
임의의 비밀번호 문자열 \(S\)가 주어졌을 때, 다음 3가지 보안 규칙을 모두 만족해야 올바른 비밀번호로 인정된다.
- 길이 및 구성 요건 (
is_valid_length_and_digits): 비밀번호의 길이 \(N\)은 \(6 \le N \le 12\) 이어야 하며, 오직 숫자(\(0 \sim 9\))로만 구성되어야 한다. - 연속 동일 숫자 제한 (
has_no_triple_same): 같은 숫자가 연속으로 3번 이상 등장해서는 안 된다. (예:777,0000은 불가능) - 연속 순차 숫자 제한 (
has_no_triple_sequential): 연속으로 1씩 커지거나 1씩 작아지는 3자리의 연달아 나오는 숫자가 존재해서는 안 된다. (예:123,321,789,987은 불가능)
입력으로 들어오는 비밀번호들에 대해 규칙을 검수하는 함수 is_valid_length_and_digits has_no_triple_same has_no_triple_sequential 을 작성하시오.
함수를 사용하는 코드
작성한 함수는 아래 코드와 함께 실행된다.
while True:
s=input()
if s == "end":
break
if is_valid_length_and_digits(s) and has_no_triple_same(s) and has_no_triple_sequential(s):
print(f"<{s}> is acceptable.")
else:
print(f"<{s}> is not acceptable.")
위 코드가 정상적으로 동작하도록 함수를 직접 정의한다. 제출할 때는 작성한 함수의 정의 전체만 제출한다.
입력
여러 개의 테스트 케이스가 한 줄에 하나씩 주어진다.
각 줄에는 검사할 비밀번호 문자열 \(S\)가 주어진다. (\(1 \le \text{length}(S) \le 20\))
입력의 마지막 줄에는 end가 주어지며, 이는 검사를 종료하라는 의미이다.
출력
각 비밀번호에 대해 규칙을 만족하면 <S> is acceptable.을, 만족하지 못하면 <S> is not acceptable.을 한 줄에 하나씩 출력한다.
제한사항
- 테스트 케이스의 개수는 최대 1,000개이다.
- 문자열 \(S\)는 공백이 없는 알파벳 및 숫자로 구성될 수 있다.
예제 입력 1
124578
123456
777124
abc1234
852096
end
예제 출력 1
<124578> is acceptable.
<123456> is not acceptable.
<777124> is not acceptable.
<abc1234> is not acceptable.
<852096> is acceptable.
코멘트