728x90
<문제 링크>
https://programmers.co.kr/learn/courses/30/lessons/72410
<문제 풀이>
1. 문제에서 주어진 순서대로 코딩을 한다
<코드>
import re
def solution(new_id):
answer = ''
#1
new_id = new_id.lower()
#2
prog = re.compile('[a-z0-9\.\-\_]')
for i in new_id:
if prog.match(i) == None:
continue
else:
m = re.match('[a-z0-9\.\-\_]',i)
answer += m.group(0)
#3
while '..' in answer:
answer = answer.replace('..','.')
#4
if answer=='.':
answer = ''
else:
if answer[0] == '.':
answer = answer[1:]
if answer[-1] == '.':
answer = answer[:-1]
#5
if answer == '':
answer = 'a' * 3
#6
if len(answer) >= 16:
answer = answer[:15]
while answer[-1] == '.':
answer = answer[:-1]
#7
if len(answer) <= 2:
while len(answer) < 3:
answer += answer[-1]
return answer
<고쳐야 할 점>
- 5단계에서 new_id가 빈 문자열이라면, new_id에 a를 대입 == new_id에 a를 3개 대입. 아이디의 길이는 3자 이상이어야 하기 때문에
- 복습 알고리즘
'두두의 알고리즘 > 문제' 카테고리의 다른 글
[탐욕법] 난이도1, K 대회 기출 '만들 수 없는 금액' (Python) (0) | 2022.03.21 |
---|---|
[해시] 프로그래머스 L1 '신고 결과 받기' (Python) (0) | 2022.03.20 |
[기타] 프로그래머스 L1 '키패드 누르기' (Python) (0) | 2022.03.20 |
[진법 변환] 프로그래머스 L1 '3진법 뒤집기' (Python) (0) | 2022.03.20 |
[순열과 조합] 프로그래머스 L1 '두 개 뽑아서 더하기' (Python) (0) | 2022.03.20 |