코테연습문제
[Programmers/Python] 신규 아이디 추천
SI-AH
2023. 6. 15. 18:36
프로그래머스 < 신규 아이디 추천 >
Lv1.인만큼 어렵지 않은 문제였고,
문제에 주어진 단계를 그대로 구현하면 되는 문제였다.
def solution(new_id):
answer = ''
# 1단계
new_id = new_id.lower()
# 2단계
for id in new_id:
if id.isalpha() or id.isdigit() or id in '-_.':
answer += id
# 3단계
while '..' in answer:
answer = answer.replace('..', '.')
# 4단계
if answer[0] == '.' and len(answer)>1:
answer = answer[1:]
if answer[-1] == '.':
answer = answer[:-1]
# 5단계
if len(answer) == 0:
answer = 'a'
# 6단계
if len(answer) >= 16:
answer = answer[:15]
if answer[-1] == '.':
answer = answer[:-1]
# 7단계
if len(answer) <= 2:
while len(answer) < 3:
answer += answer[-1]
return answer
풀이과정
..이라고 할만한 게 없다. 하라는대로 그대로 구현했다
한 가지 유의할 점
4단계 new_id에서 마침표(.)가 처음이나 끝에 위치한다면 제거합니다.
코드에는 문제에서 주어지지 않은 조건을 썼다.
len(answer) > 1 이라는 조건을 추가해준 이유는 '처음'이라는 것을 표현하기 위함이다.
적어도 2개의 요소가 있어야 처음/끝이라는 개념을 적용시킬 수 있다.
또한 answer[1:]을 할 때 out of index 오류가 날 것이다.