Hi, There!
안녕하세요, 바오밥입니다.
목차
- 문제
- 풀이
문제
문제 내용
주어진 비밀번호가 안전한지 아닌지 판단하려합니다. 비밀번호의 안전 여부는 다음 규칙으로 판단합니다.
- 연속된 3자리 이상의 알파벳 혹은 숫자를 사용할 수 없습니다. (abc, cba, 012, 987 등)
비밀번호에 사용할 문자열 password가 매개변수로 주어질 때, 주어진 문자열이 위 규칙에 맞으면 true를, 맞지 않으면 false를 return 하도록 solution 함수를 작성했습니다.
그러나, 코드 일부분이 잘못되어있기 때문에, 몇몇 입력에 대해서는 올바르게 동작하지 않습니다.
주어진 코드에서 _한 줄_만 변경해서 모든 입력에 대해 올바르게 동작하도록 수정하세요.
매개변수 설명
비밀번호에 사용할 문자열 password가 solution 함수의 매개변수로 주어집니다.
- password는 알파벳 소문자와 숫자로만 이루어진 문자열입니다.
- password의 길이는 5 이상 20 이하입니다.
return 값 설명
주어진 문자열이 주어진 규칙에 맞으면 true를, 맞지 않으면 false를 return 해주세요.
예시
예시 설명
예시 #1 주어진 문자열에는 연속된 3자리 이상의 문자열 혹은 숫자가 없습니다.
예시 #2 "cba"가 연속된 3자리 문자열이므로 주어진 규칙에 맞지 않습니다.
풀이
풀이 코드 및 해설
def solution(password):
length = len(password)
for i in range(length - 2): # second_check 부분에서 +2 => 인덱스 범위 넘지 않아야함
first_check = ord(password[i + 1]) - ord(password[i])
# 아스키코드를 이용하여 전달받은 문자열, 숫자가 연속되지 않았는지 검사
second_check = ord(password[i+2]) - ord(password[i+1])
# 아스키코드를 이용하여 전달받은 문자열, 숫자가 연속되지 않았는지 검사
if first_check == second_check and (first_check == 1 or first_check == -1):
# 만약 first_check, second_check이 모두 걸리면서
# 1, -1인 경우 패스워드 설정에 실패하였다고 반환
return False
return True
'Certificate > Cert - Cos Pro 1급' 카테고리의 다른 글
[Cos Pro 1급] 기출문제 3회차, 배열을 회전시켜보세요 (0) | 2021.07.15 |
---|---|
[Cos Pro 1급] 기출문제 2회차, 0들을 0으로 만들기 (0) | 2021.07.14 |
[Cos Pro 1급] 기출문제 2회차, 규칙에 맞는 배열 구하기 (0) | 2021.07.14 |
[Cos Pro 1급] 기출문제 2회차, 거스름돈 구하기 (0) | 2021.07.14 |
[Cos Pro 1급] 기출문제 2회차, 로봇을 움직여주세요 (0) | 2021.07.14 |