문제
풀이
- 다른 방식으로도 풀었지만, 정규표현식 연습을 위해 정규표현식을 사용해 풀어보았다,
코드
import re
def solution(new_id):
# 1. 모든 대문자 소문자로 치환
answer = new_id.lower()
print(answer)
# 2. 소문자, 숫자, -, _, . 만 남겨두기
answer = re.sub('[^a-z0-9\-_.]', '', answer)
# 3. 마침표가 2번 이상이면 하나로 치환
answer = re.sub('\.+', '.', answer)
# 4. 마침표로 시작하거나 끝나면 마침표 제거
answer = re.sub('^[.]|[.]$', '', answer)
# 5, 6. 빈 문자열이라면 a 대입, 16자 이상이면 15개만 남기기
answer = 'a' if len(answer) == 0 else answer[:15]
# 6. 만약 마침표가 끝에 있다면 마침표 제거
answer = re.sub('^[.]|[.]$', '', answer)
# 7. 길이가 2자 이하면 길이가 3이 될때까지 마지막 문자 반복
if len(answer) <= 2:
answer += answer[-1] * (3 - len(answer))
return answer
반응형
'Algorithm > Programmers' 카테고리의 다른 글
[Programmers] Lv1. 3진법 뒤집기 (0) | 2021.05.15 |
---|---|
[Programmers] Lv1. 예산 (0) | 2021.05.15 |
[Programmers] Lv1. 내적 (0) | 2021.05.15 |
[Programmers] Lv1. 소수 만들기 (0) | 2021.05.15 |
[Programmers] Lv1. 음양 더하기 (0) | 2021.05.15 |
댓글