1. 신규 아이디 추천
코딩테스트 연습 - 신규 아이디 추천 | 프로그래머스 (programmers.co.kr)
def solution(new_id):
#소문자
new_id = new_id.lower()
new_id = list(new_id)
allowed = ['-', '.', '_']
i = 0
#허용 문자 거르기
while i < len(new_id):
if new_id[i] in allowed or new_id[i].isalpha() or new_id[i].isdigit():
i += 1
else:
del new_id[i]
new_id = ''.join(new_id)
#마침표 거르기
while new_id.find('..') != -1:
index = new_id.find('..')
if index >= len(new_id)-2:
new_id = new_id[:index] + new_id[index+1]
else:
new_id = new_id[:index] + new_id[index+1:]
if new_id[0] == '.':
new_id = new_id[1:]
if len(new_id) != 0 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:
new_id = new_id + new_id[-1] * (3-len(new_id))
return new_id
다른 사람 풀이 -> 파이썬도 공부해야햐ㅐ..
from re import sub
def solution(new_id):
new_id = new_id.lower()
new_id = sub("[^a-z0-9-_.]", "", new_id)
new_id = sub("\.+", ".", new_id)
new_id = sub("(^\.|\.$)", "", new_id)
new_id = new_id if new_id else "a"
new_id = sub("\.$", "", new_id[:15])
new_id = new_id if len(new_id) > 3 else new_id + new_id[-1] * (3 - len(new_id))
return new_id
'Computer Science > 자료구조' 카테고리의 다른 글
[7.3] 비밀지도 알고리즘(48/100) (0) | 2021.07.03 |
---|---|
[7.3] 실패율 - 파이썬 알고리즘 문제 풀이() (0) | 2021.07.03 |
[6.27] Level1 연습문제 모음 5 (43/100~46/100) (0) | 2021.06.27 |
[6.26] Level 1 연습문제 모음 4(40/100~42/100) (0) | 2021.06.26 |
[6.25] level 1 연습문제 모음 3(35/100~39/100) (0) | 2021.06.25 |