카카오 블라인드 채용 코딩테스트 중 아이디 규칙 관련 부분입니다.
[프로그래머스]신규 아이디 추천 문제 풀어보기 (https://programmers.co.kr/learn/courses/30/lessons/72410)
다음은 카카오 아이디의 규칙입니다.
아이디의 길이는 3자 이상 15자 이하여야 합니다.
아이디는 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.) 문자만 사용할 수 있습니다.
단, 마침표(.)는 처음과 끝에 사용할 수 없으며 또한 연속으로 사용할 수 없습니다.
3자 이상
3자 이상일 경우 {3, 최대길이}를 []끝에 추가해줍니다.
^: 시작
[]: 찾고자하는 문자 종류 (\s: 공백, \S: 비 공백)
{}: 길이 설정, {1, 5} 1이상 5이하
$: 끝
^[\s\S']{3,8}$
알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.)
a-z: 알파벳 소문자
0-9: 숫자
-: 빼기
_: 밑줄
.: 마침표
^[a-z0-9-_.]{3,8}$
마침표, 빼기, 밑줄을 제외한 나머지 특수문자를 지우는게 이리도 어려울줄이야...
결국...
정규표현식은 버리는걸로
def solution(new_id):
import re
new_id = new_id.lower()
new_id = new_id.replace("~", "")
new_id = new_id.replace("!", "")
new_id = new_id.replace("@", "")
new_id = new_id.replace("#", "")
new_id = new_id.replace("$", "")
new_id = new_id.replace("%", "")
new_id = new_id.replace("^", "")
new_id = new_id.replace("&", "")
new_id = new_id.replace("*", "")
new_id = new_id.replace("(", "")
new_id = new_id.replace(")", "")
new_id = new_id.replace("+", "")
new_id = new_id.replace("=", "")
new_id = new_id.replace("[", "")
new_id = new_id.replace("]", "")
new_id = new_id.replace("{", "")
new_id = new_id.replace("}", "")
new_id = new_id.replace(":", "")
new_id = new_id.replace("?", "")
new_id = new_id.replace(",", "")
new_id = new_id.replace("<", "")
new_id = new_id.replace(">", "")
new_id = new_id.replace("\\", "")
new_id = new_id.replace("/", "")
new_id = re.sub("\.+", ".", new_id)
new_id = re.sub("^\.", "", new_id)
new_id = re.sub("\.$", "", new_id)
if len(new_id) == 0:
new_id = "aaa"
if len(new_id) >= 16:
new_id = new_id[:15]
if new_id[-1] == ".":
new_id = new_id[:-1]
if len(new_id) <= 2 and len(new_id) >= 1:
new_id = new_id + new_id[-1]*(3-len(new_id))
answer = new_id
return answer
단순무식
만세~
728x90
'플그래밍 > 파이써언' 카테고리의 다른 글
[파이썬] django 버젼 확인하기 (0) | 2022.06.13 |
---|---|
[파이썬] datetime 모듈 기초 (0) | 2022.06.08 |
정규표현식(regex) 연습 사이트 (0) | 2022.06.07 |
[파이썬] 유저아이디 길이 확인하기, len() (0) | 2022.06.05 |
[파이썬] 키움증권 HTS 현재 가격 추출 (pytesseract) (0) | 2022.05.31 |