코딩테스트
[파이썬] 신규 아이디 추천 - 2021 KAKAO BLIND RECRUITMENT [CODING TEST #10]
ALTERww
2022. 7. 20. 22:56
320x100
https://school.programmers.co.kr/learn/courses/30/lessons/72410
단계별로 구현하면 어렵지 않은 문제.
- #1 : new_id = new_id.lower() (copy를 반환)
- #2 : isalnum() 으로 숫자 & 알파벳 check
- #3 : while, replace() 활용
- #4 : 앞뒤 '.' 제거할 때, len < 2일 경우 answer[1]에 대한 접근이 불가능하므로 길이 조건 추가.
def solution(new_id):
answer = ''
#1
new_id = new_id.lower()
#2
for alpha in new_id:
if alpha.isalnum() or alpha in '-_.':
answer += alpha
#3
while '..' in answer:
answer = answer.replace('..','.')
#4
if answer[0] == '.':
answer = answer[1:]
if len(answer) > 1 and answer[-1] == '.':
answer = answer[:-1]
#5
if len(answer) == 0:
answer = 'a'
#6
if len(answer) > 15:
answer = answer[:15]
if answer[-1] == '.':
answer = answer[:-1]
#7
while len(answer) < 3:
answer += answer[-1]
return answer
isalnum() 함수같은 내장 함수 알아두면 편할 것 같다.
- isdigit() : 숫자만 있으면 True
- isalpha() : 알파벳 문자만 있으면 True
- isupper() : 알파벳이 모두 대문자면 True
- islower() : 알파벳이 모두 소문자면 True