스마트 도어락


답안 제출

Points: 6
시간 제한: 2.0s
메모리 제한: 1G

문제 유형
허용된 언어
Python

골드는 스마트 도어락의 보안 시스템을 강화하기 위해 새로운 비밀번호 생성 규칙을 도입하고자 한다.

임의의 비밀번호 문자열 \(S\)가 주어졌을 때, 다음 3가지 보안 규칙을 모두 만족해야 올바른 비밀번호로 인정된다.

  1. 길이 및 구성 요건 (is_valid_length_and_digits): 비밀번호의 길이 \(N\)은 \(6 \le N \le 12\) 이어야 하며, 오직 숫자(\(0 \sim 9\))로만 구성되어야 한다.
  2. 연속 동일 숫자 제한 (has_no_triple_same): 같은 숫자가 연속으로 3번 이상 등장해서는 안 된다. (예: 777, 0000은 불가능)
  3. 연속 순차 숫자 제한 (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.

코멘트

현재 작성된 코멘트가 없습니다.