이숭간 공부기록
[프로그래머스] 파이썬 _신규아이디 추천 (2021 KAKAO BLIND) ⭕️ 본문
728x90
https://programmers.co.kr/learn/courses/30/lessons/72410
문제유형 : 문자열, 구현
문제풀이 :
- 정규표현식
- 문자열(알파벳소문자, 알파벳ㄷ문자, 숫자, - ,_, . 를 제외한(^) 모든문자 제거하기
-
new_id = re.sub(r"[^a-zA-Z0-9-_.]", "", new_id)
- 문자열 양쪽끝 특정문자 제거
- strip() : 파라미터없을때는 공백을제거, 특정문자를 제거하고싶으면 해당문자를 파라미터로 주면됨
정답코드
import re
def solution(new_id):
answer = ''
new_id = new_id.lower() # 소문자변환
new_id = re.sub(r"[^a-z0-9-_.]", "", new_id) # 특수문자 제거
# 연달아있는 마침표 하나로 합치기
count = 0
id = ''
for c in new_id:
if c == '.' and count == 0:
id += c
count += 1
elif c != '.':
id += c
count = 0
# 양쪽끝 마침표 제거
id = id.strip('.')
# 공백이면 a붙이기
if id == '':
id += 'a'
# 길이가 16이상이면 15로 자르기
if len(id) >= 16:
id = id[:15]
# 마지막문자가 .이면 제거
if id[-1] == '.':
id = id[:-1]
# 길이가 2이하일때 마지막문자를 길이 3까지 연장하기
if len(id) < 3:
last = id[-1]
while len(id) < 3:
id += last
return id
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 파이썬 _ 합승 택시 요금 (2021 KAKAO BLIND) (0) | 2021.06.27 |
---|---|
[프로그래머스] 파이썬 _ 메뉴리뉴얼 (2021 KAKAO BLIND) ⭕️ (0) | 2021.06.26 |
[프로그래머스] 파이썬 _ 베스트앨범 (0) | 2021.06.16 |
[프로그래머스] 파이썬 _주식가격 (0) | 2021.06.15 |
[프로그래머스] 파이썬 _ H-Index (0) | 2021.06.05 |