알고리즘 문제/PROGRAMMERS
[2021 KAKAO BLIND] 신규 아이디 추천
이융희
2021. 10. 7. 15:16
728x90
단순 구현 문제이다.
문제 지문에 맞게 코드를 구현하기만 하면 된다.
def solution(new_id):
answer = ''
for x in new_id:
if x.isupper():
answer += x.lower()
else:
answer += x
answer, new_id = '', answer
for x in new_id:
if not 96 < ord(x) < 123:
if not 47 < ord(x) < 58:
if not ord(x) in [95, 45, 46]:
continue
answer += x
answer, new_id = '', answer
i = 0
while i < len(new_id):
answer += new_id[i]
if ord(new_id[i]) == 46:
i += 1
if i >= len(new_id):
break
while ord(new_id[i]) == 46:
i += 1
if i >= len(new_id):
break
continue
i += 1
if ord(answer[0]) == 46:
answer = answer[1:]
if len(answer) != 0 and ord(answer[len(answer) - 1]) == 46:
answer = answer[:len(answer)-1]
if not answer:
answer = 'a'
if len(answer) >= 16:
answer = answer[:15]
if ord(answer[len(answer) - 1]) == 46:
answer = answer[:len(answer)-1]
while len(answer) < 3:
answer += answer[len(answer)-1]
return answer