Notice
Recent Posts
Recent Comments
Link
초보 개발자의 일기
Programmers - 신규 아이디 추천 본문
프로그래머스에서 처음 코딩문제를 풀어봤다. 일단 첫인상은... 어려웠다.
난이도 덕분에 풀다보니까 오기도 생기고 해서 열심히 풀어봤다. 정규표현식을 검색해서 풀어봤다. 정규표현식을 사용하니 코드가 간결해서 마음에 든다.
아이디를 입력받아 정해진 규칙에 맞게 변경하여 리턴하는 문제이다. 사용언어는 Python3 이다.
import re
def solution(new_id):
# step1. 대문자를 소문자로 전환
new_id = new_id.lower()
# step2. 소문자와 숫자, '-','_','.'를 제외한 문자 삭제
new_id = re.sub('[^a-z0-9\-\_\.]', '', new_id)
# step3. 2개이상 연속된 마침표(.)를 1개로 변경
new_id = re.sub('[\.]+', '.',new_id)
# step4. 양쪽 끝의 마침표 제거
new_id = new_id.strip('.')
# step5. 아이디가 빈 문자열일 경우 'a'를 대입
if len(new_id)==0 : new_id = 'a'
# step6. 아이디의 길이가 16이상일 경우(15자 초과) 처음부터 15번째 까지만 저장
elif len(new_id)>15 : new_id = new_id[0:15]
new_id = new_id.strip('.') # 길이조절 후 양 끝의 마침표 다시 제거
# step7. 아이디의 길이가 2이하일 경우 아이디의 마지막 글자를 반복(총 길이가 3이 될 때까지)
while len(new_id) < 3 : new_id = new_id + new_id[-1]
answer = new_id
return answer
'열공일기 > 코딩연습' 카테고리의 다른 글
Programmers - 수박수박수박수박수박수? (0) | 2021.08.08 |
---|---|
Programmers - 크레인 인형뽑기 (0) | 2021.07.19 |
1085번 - 직사각형에서 탈출 (0) | 2021.06.22 |
4948 - 베르트랑 공준 (0) | 2021.06.21 |
11653 - 소인수분해 (0) | 2021.06.18 |
Comments