❗ 풀이 과정
- 각 단계 (1~7단계)에 대해서 직관적으로 코드를 짜면 해결할 수 있다.
🤜 풀이 코드
def solution(new_id):
answer = ''
new_id=new_id.lower()
tmp=''
for i in new_id:
if i in '._-' or i.isdigit() or i.islower():
tmp+=i
else:
continue
new_id=tmp
while '..' in new_id:
new_id=new_id.replace('..','.')
if new_id[0]=='.':
new_id=new_id[1:]
if len(new_id)>1 and new_id[-1]=='.':
new_id=new_id[:-1]
if len(new_id)==0:
new_id='a'
if len(new_id)>=16:
new_id=new_id[:15]
if new_id[-1]=='.':
new_id=new_id[:-1]
if len(new_id)<=2:
while len(new_id)<=2:
new_id+=new_id[-1]
return new_id
🤷♀️ 코드 리뷰
- 2단계하고 3단계는 어떻게 구현할지 모르겠어서 결국 구글의 힘을 빌렸다.
- 2단계는 re 라이브러리를 사용해서 하면 쉬울 것 같은데,, 결국 사용하지 못하고 for문으로 해결
- 4단계는
처음에 위치한 . 을 제거했을 때, 문자열이 없어진 경우
를 고려해야한다. 고려하지 않는다면 index error가 난다.